diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2018-02-20 09:42:43 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2018-02-20 09:42:43 +0100 |
commit | ea1717899294af93f7342069b15fc197b525ad29 (patch) | |
tree | 1e43e31dbeb407e404a8d4bb6a5aff1661e02456 | |
parent | 51821d29f46415a477fa824999fa78057ecb1403 (diff) | |
download | amtterm-ea1717899294af93f7342069b15fc197b525ad29.tar.gz |
fix memory leak
Reported-by: David Binderman <dcb314@hotmail.com>
-rw-r--r-- | parseconfig.c | 13 |
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; } /* ------------------------------------------------------------------------ */ |