From: cedric Date: Thu, 18 Nov 2010 10:30:53 +0000 (+0000) Subject: * eet: correctly handle length of ciphered/compressed data. X-Git-Tag: submit/2.0alpha-wayland/20121127.222001~244 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=61dc2f07c0f7440864c9cf452fde4013701e1728;p=profile%2Fivi%2Feet.git * eet: correctly handle length of ciphered/compressed data. git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eet@54683 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/eet_lib.c b/src/lib/eet_lib.c index 82aad09..758757a 100644 --- a/src/lib/eet_lib.c +++ b/src/lib/eet_lib.c @@ -1802,15 +1802,21 @@ eet_read_cipher(Eet_File *ef, unsigned int data_deciphered_sz = 0; /* if we already have the data in ram... copy that */ + if (efn->ciphered && efn->size > size) + { + size = efn->size; + data = realloc(data, efn->size); + } + if (efn->data) - memcpy(data, efn->data, efn->size); + memcpy(data, efn->data, size); else - if (!read_data_from_disk(ef, efn, data, size)) - goto on_error; + if (!read_data_from_disk(ef, efn, data, size)) + goto on_error; if (efn->ciphered && cipher_key) { - if (eet_decipher(data, size, cipher_key, strlen(cipher_key), + if (eet_decipher(data, efn->size, cipher_key, strlen(cipher_key), &data_deciphered, &data_deciphered_sz)) { if (data_deciphered)