summaryrefslogtreecommitdiffstats
path: root/lib/Plugins/FileTransfer.cpp
diff options
context:
space:
mode:
authordnovotny <danny@rawhide.localdomain>2009-10-01 07:02:40 -0400
committerdnovotny <danny@rawhide.localdomain>2009-10-01 07:02:40 -0400
commit410484dae63be34fe22fc344d7275cc3e88a563b (patch)
tree40d9d129ae54fc39fdb157f4ac9405e2b8ff3376 /lib/Plugins/FileTransfer.cpp
parent0acc84be46d8ada7611cc54ab33f0d5b95720cf2 (diff)
downloadabrt-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.cpp9
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;
}