From 0034ac288e009046ce62a0d339fb75915a2310e5 Mon Sep 17 00:00:00 2001 From: raster Date: Sun, 21 Nov 2010 05:18:19 +0000 Subject: [PATCH] fix possible leak. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@54755 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/eet_lib.c | 12 +++++++++--- 1 file 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); -- 2.7.4