From 3a4ffdc0c15e7ca844eeabdb1489de54146d408d Mon Sep 17 00:00:00 2001 From: Thomas White Date: Sun, 6 Nov 2011 23:37:14 +0100 Subject: Fiddle filename pointers --- src/loadsave.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/loadsave.c') diff --git a/src/loadsave.c b/src/loadsave.c index e6a03ff..79ecc20 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -751,6 +751,7 @@ int save_presentation(struct presentation *p, const char *filename) FILE *fh; int i; struct serializer ser; + char *old_fn; fh = fopen(filename, "w"); if ( fh == NULL ) return 1; @@ -802,8 +803,11 @@ int save_presentation(struct presentation *p, const char *filename) } serialize_end(&ser); - if ( p->filename != NULL ) free(p->filename); + /* Slightly fiddly because someone might + * do save_presentation(p, p->filename) */ + old_fn = p->filename; p->filename = strdup(filename); + if ( old_fn != NULL ) free(old_fn); update_titlebar(p); fclose(fh); -- cgit v1.2.3