summaryrefslogtreecommitdiffstats
path: root/parseconfig.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2018-02-20 09:42:43 +0100
committerGerd Hoffmann <kraxel@redhat.com>2018-02-20 09:42:43 +0100
commitea1717899294af93f7342069b15fc197b525ad29 (patch)
tree1e43e31dbeb407e404a8d4bb6a5aff1661e02456 /parseconfig.c
parent51821d29f46415a477fa824999fa78057ecb1403 (diff)
downloadamtterm-ea1717899294af93f7342069b15fc197b525ad29.tar.gz
fix memory leak
Reported-by: David Binderman <dcb314@hotmail.com>
Diffstat (limited to 'parseconfig.c')
-rw-r--r--parseconfig.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/parseconfig.c b/parseconfig.c
index 79e2457..719af37 100644
--- a/parseconfig.c
+++ b/parseconfig.c
@@ -558,17 +558,24 @@ cfg_write_file(char *dname, char *filename)
if (-1 == unlink(bfile) && ENOENT != errno) {
fprintf(stderr,"unlink(%s): %s\n",bfile,strerror(errno));
- return -1;
+ goto err;
}
if (-1 == rename(filename,bfile) && ENOENT != errno) {
fprintf(stderr,"rename(%s,%s): %s\n",filename,bfile,strerror(errno));
- return -1;
+ goto err;
}
if (-1 == rename(tfile,filename)) {
fprintf(stderr,"rename(%s,%s): %s\n",tfile,filename,strerror(errno));
- return -1;
+ goto err;
}
+ free(bfile);
+ free(tfile);
return 0;
+
+err:
+ free(bfile);
+ free(tfile);
+ return -1;
}
/* ------------------------------------------------------------------------ */