Fix memory leak for 'intermediate_image' 59/244159/2 accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.114515 accepted/tizen/6.0/unified/hotfix/20201103.002757 accepted/tizen/unified/20200917.141755 submit/tizen/20200916.012329 submit/tizen/20200917.011112 submit/tizen_6.0/20201029.205104 submit/tizen_6.0_hotfix/20201102.192504 submit/tizen_6.0_hotfix/20201103.114804 tizen_6.0.m2_release
authorjiyong.min <jiyong.min@samsung.com>
Tue, 15 Sep 2020 09:30:06 +0000 (18:30 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Tue, 15 Sep 2020 09:40:06 +0000 (18:40 +0900)
Change-Id: Ia8be69d954733c220e13a762fd601babe98e9b9c

gif/mm_util_gif.c
packaging/libmm-utility.spec

index 3a172cf..5311c1b 100644 (file)
@@ -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)
index b47a75d..492eb9a 100644 (file)
@@ -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