From: jiyong.min Date: Tue, 15 Sep 2020 09:30:06 +0000 (+0900) Subject: Fix memory leak for 'intermediate_image' X-Git-Tag: submit/tizen/20200916.012329^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6540dd573d54d94d93c2e327777d1ab5c3ce2ed4;p=platform%2Fcore%2Fmultimedia%2Flibmm-utility.git Fix memory leak for 'intermediate_image' Change-Id: Ia8be69d954733c220e13a762fd601babe98e9b9c --- diff --git a/gif/mm_util_gif.c b/gif/mm_util_gif.c index 3a172cf..5311c1b 100644 --- a/gif/mm_util_gif.c +++ b/gif/mm_util_gif.c @@ -492,8 +492,9 @@ static int __gif_image_write_image(gif_file_s *gif_file, mm_image_info_s *gif_im unsigned long intermediate_image_size = 0; unsigned long idx = 0; - mm_util_retvm_if(gif_image == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); - mm_util_retvm_if(gif_image->data == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter"); + mm_util_retvm_if(!gif_file, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid gif_file"); + mm_util_retvm_if(!gif_image, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid gif_image"); + mm_util_retvm_if(!gif_image->data, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid gif_image->data"); /* Make local color map */ ret = __gif_make_color_map(gif_image, &color_map, &intermediate_image, &intermediate_image_size); @@ -506,23 +507,23 @@ static int __gif_image_write_image(gif_file_s *gif_file, mm_image_info_s *gif_im g_free(intermediate_image); return MM_UTIL_ERROR_INVALID_OPERATION; } - /* release color map */ - COLORMAP_FREE(color_map); - mm_util_debug("put pixel count: %lu", (intermediate_image_size / sizeof(GifPixelType))); + COLORMAP_FREE(color_map); + mm_util_debug("pixel count: %lu", (intermediate_image_size / sizeof(GifPixelType))); for (idx = 0; idx < (intermediate_image_size / sizeof(GifPixelType)); idx++) { GifPixelType pixel = (GifPixelType)intermediate_image[idx]; if (EGifPutPixel(gif_file->GifFile, pixel) == GIF_ERROR) { - mm_util_error("could not put pixel"); - return MM_UTIL_ERROR_INVALID_OPERATION; + mm_util_error("EGifPutPixel failed due to %s", GifErrorString(gif_file->GifFile->Error)); + ret = MM_UTIL_ERROR_INVALID_OPERATION; + break; } } /* release intermediate_image */ g_free(intermediate_image); - return MM_UTIL_ERROR_NONE; + return ret; } static int __gif_image_create_ext_block(int function, int byte_count, ExtensionBlock **ext_block) diff --git a/packaging/libmm-utility.spec b/packaging/libmm-utility.spec index b47a75d..492eb9a 100644 --- a/packaging/libmm-utility.spec +++ b/packaging/libmm-utility.spec @@ -1,6 +1,6 @@ Name: libmm-utility Summary: Multimedia Framework Utility Library -Version: 0.2.2 +Version: 0.2.3 Release: 0 Group: System/Libraries License: Apache-2.0