diff options
author | Manoj Srivastava <srivasta@debian.org> | 2009-05-02 04:06:24 -0500 |
---|---|---|
committer | Clint Adams <schizo@debian.org> | 2009-05-02 09:42:12 -0400 |
commit | aeb47f24e0d3158e7d41163bb8f28e5ca1ecc698 (patch) | |
tree | 4cdd9d2d4019c0c992f1fe3e95aaf6260bd95708 /tempfile.c | |
parent | 1e1ffb1e7fbc710c48ab591d3f3a501c290d5b87 (diff) | |
download | debianutils-aeb47f24e0d3158e7d41163bb8f28e5ca1ecc698.tar.gz |
Fix a double free problem in tempfile
Closes: #526606, #526607, #526610
Signed-off-by: Manoj Srivastava <srivasta@debian.org>
Diffstat (limited to 'tempfile.c')
-rw-r--r-- | tempfile.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -130,7 +130,8 @@ main (int argc, char **argv) if ((fd = open(filename, O_RDWR | O_CREAT | O_EXCL, mode)) < 0) { if (errno == EEXIST) { - free(name); + if(name != filename) + free(name); free(filename); continue; } @@ -143,7 +144,8 @@ main (int argc, char **argv) if (close(fd)) syserror("close"); puts(filename); + if(name != filename) + free(name); free(filename); - free(name); exit(0); } |