From: Anastasia Lyupa Date: Thu, 26 Oct 2017 07:35:12 +0000 (+0300) Subject: Fix leak and double-free in gif encoding X-Git-Tag: submit/tizen/20171101.024016~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e26d70828dbb8f441e8043c3ef2bd867dbe2d857;p=platform%2Fcore%2Fmultimedia%2Flibmm-utility.git Fix leak and double-free in gif encoding Not return before free remaining data in mm_util_gif_encode_destroy(). Free gif_file->saved_image after all saved images are freed in mm_util_gif_encode(). Change-Id: I318049461669d769f6126c395089c56ab2311bc0 Signed-off-by: Anastasia Lyupa --- diff --git a/gif/mm_util_gif.c b/gif/mm_util_gif.c index d6f3ddc..4cf2c57 100755 --- a/gif/mm_util_gif.c +++ b/gif/mm_util_gif.c @@ -1353,7 +1353,6 @@ int mm_util_gif_encode_save(mm_gif_file_h gif_file_h) return MM_UTIL_ERROR_NONE; } - int mm_util_gif_enocde_set_image_handle(mm_gif_file_h gif_file_h, mm_gif_image_h gif_image_h) { gif_file_s *gif_file = (gif_file_s *)gif_file_h; @@ -1417,6 +1416,7 @@ int mm_util_gif_encode(mm_gif_file_h gif_file_h) mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_add_image failed"); mm_util_gif_image_destory(gif_image); } + MMUTIL_SAFE_FREE(gif_file->saved_image); ret = mm_util_gif_encode_save(gif_file_h); mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "mm_util_gif_encode_save failed"); @@ -1431,7 +1431,6 @@ void mm_util_gif_encode_destroy(mm_gif_file_h gif_file_h) gif_file_s *gif_file = (gif_file_s *)gif_file_h; mm_util_retm_if(gif_file == NULL, "Invalid parameter"); - mm_util_retm_if(gif_file->GifFile == NULL, "GifFile has already closed"); if (gif_file->GifFile != NULL) { ret = _gif_encode_close_file(gif_file);