fix possible leak.

SVN revision: 54755
This commit is contained in:
Carsten Haitzler 2010-11-21 05:18:19 +00:00
parent 9fa5bbcc82
commit 1f08779356
1 changed files with 9 additions and 3 deletions

View File

@ -1833,7 +1833,7 @@ eet_read_cipher(Eet_File *ef,
/* compressed data */ /* compressed data */
else else
{ {
void *tmp_data; void *tmp_data = NULL;
void *data_deciphered = NULL; void *data_deciphered = NULL;
unsigned int data_deciphered_sz = 0; unsigned int data_deciphered_sz = 0;
int free_tmp = 0; int free_tmp = 0;
@ -1873,7 +1873,9 @@ eet_read_cipher(Eet_File *ef,
goto on_error; goto on_error;
} }
if (free_tmp)
free(tmp_data); free(tmp_data);
free_tmp = 1;
tmp_data = data_deciphered; tmp_data = data_deciphered;
compr_size = data_deciphered_sz; compr_size = data_deciphered_sz;
} }
@ -1882,7 +1884,11 @@ eet_read_cipher(Eet_File *ef,
dlen = size; dlen = size;
if (uncompress((Bytef *)data, &dlen, if (uncompress((Bytef *)data, &dlen,
tmp_data, (uLongf)compr_size)) tmp_data, (uLongf)compr_size))
{
if (free_tmp)
free(tmp_data);
goto on_error; goto on_error;
}
if (free_tmp) if (free_tmp)
free(tmp_data); free(tmp_data);