diff options
author | dnovotny <danny@rawhide.localdomain> | 2009-10-01 07:02:40 -0400 |
---|---|---|
committer | dnovotny <danny@rawhide.localdomain> | 2009-10-01 07:02:40 -0400 |
commit | 410484dae63be34fe22fc344d7275cc3e88a563b (patch) | |
tree | 40d9d129ae54fc39fdb157f4ac9405e2b8ff3376 /lib/Plugins/FileTransfer.cpp | |
parent | 0acc84be46d8ada7611cc54ab33f0d5b95720cf2 (diff) | |
download | abrt-410484dae63be34fe22fc344d7275cc3e88a563b.tar.gz abrt-410484dae63be34fe22fc344d7275cc3e88a563b.tar.xz abrt-410484dae63be34fe22fc344d7275cc3e88a563b.zip |
fix possible mem leak
Diffstat (limited to 'lib/Plugins/FileTransfer.cpp')
-rw-r--r-- | lib/Plugins/FileTransfer.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/Plugins/FileTransfer.cpp b/lib/Plugins/FileTransfer.cpp index 7dd74df..6fbc278 100644 --- a/lib/Plugins/FileTransfer.cpp +++ b/lib/Plugins/FileTransfer.cpp @@ -195,19 +195,21 @@ static void create_targz(const char * archive_name, const char * directory) ssize_t bytesRead; gzFile gz; - name_without_gz = strdup(archive_name); + name_without_gz = xstrdup(archive_name); strrchr(name_without_gz,'.')[0] = '\0'; create_tar(name_without_gz, directory); f = fopen(name_without_gz, "r"); if (f == NULL) { + free(name_without_gz); return; } gz = gzopen(archive_name, "w"); if (gz == NULL) { fclose(f); + free(name_without_gz); return; } @@ -232,19 +234,21 @@ static void create_tarbz2(const char * archive_name, const char * directory) BZFILE * bz; #define BLOCK_MULTIPLIER 7 - name_without_bz2 = strdup(archive_name); + name_without_bz2 = xstrdup(archive_name); strrchr(name_without_bz2,'.')[0] = '\0'; create_tar(name_without_bz2, directory); tarFD = open(name_without_bz2, O_RDONLY); if (tarFD == -1) { + free(name_without_bz2); return; } f = fopen(archive_name, "w"); if (f == NULL) { close(tarFD); + free(name_without_bz2); return; } bz = BZ2_bzWriteOpen(&bzError, f, BLOCK_MULTIPLIER, 0, 0); @@ -252,6 +256,7 @@ static void create_tarbz2(const char * archive_name, const char * directory) { close(tarFD); fclose(f); + free(name_without_bz2); return; } |