diff options
author | Carsten Haitzler <raster@rasterman.com> | 2010-11-21 05:18:19 +0000 |
---|---|---|
committer | Carsten Haitzler <raster@rasterman.com> | 2010-11-21 05:18:19 +0000 |
commit | 071693381036d26c2e6fe42aeba647ce08822deb (patch) | |
tree | 742567f12cc3cfe63621c63c6de6eaf09a5487f6 | |
parent | 2d4813d1f8869ae954dabd7eb9d8d1e021f9549b (diff) | |
download | eet-071693381036d26c2e6fe42aeba647ce08822deb.tar.gz |
fix possible leak.
SVN revision: 54755
-rw-r--r-- | src/lib/eet_lib.c | 12 |
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); |