summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2010-11-21 05:18:19 +0000
committerCarsten Haitzler <raster@rasterman.com>2010-11-21 05:18:19 +0000
commit071693381036d26c2e6fe42aeba647ce08822deb (patch)
tree742567f12cc3cfe63621c63c6de6eaf09a5487f6
parent2d4813d1f8869ae954dabd7eb9d8d1e021f9549b (diff)
downloadeet-071693381036d26c2e6fe42aeba647ce08822deb.tar.gz
fix possible leak.
SVN revision: 54755
-rw-r--r--src/lib/eet_lib.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/eet_lib.c b/src/lib/eet_lib.c
index 758757a..7fc6d1b 100644
--- a/src/lib/eet_lib.c
+++ b/src/lib/eet_lib.c
@@ -1833,7 +1833,7 @@ eet_read_cipher(Eet_File *ef,
/* compressed data */
else
{
- void *tmp_data;
+ void *tmp_data = NULL;
void *data_deciphered = NULL;
unsigned int data_deciphered_sz = 0;
int free_tmp = 0;
@@ -1873,7 +1873,9 @@ eet_read_cipher(Eet_File *ef,
goto on_error;
}
- free(tmp_data);
+ if (free_tmp)
+ free(tmp_data);
+ free_tmp = 1;
tmp_data = data_deciphered;
compr_size = data_deciphered_sz;
}
@@ -1882,7 +1884,11 @@ eet_read_cipher(Eet_File *ef,
dlen = size;
if (uncompress((Bytef *)data, &dlen,
tmp_data, (uLongf)compr_size))
- goto on_error;
+ {
+ if (free_tmp)
+ free(tmp_data);
+ goto on_error;
+ }
if (free_tmp)
free(tmp_data);