Fix memory leak if function is called 93/239093/2
authorjiyong.min <jiyong.min@samsung.com>
Tue, 21 Jul 2020 22:51:40 +0000 (07:51 +0900)
committerjiyong.min <jiyong.min@samsung.com>
Wed, 22 Jul 2020 00:10:54 +0000 (09:10 +0900)
  - gif_file->filename in mm_util_gif_encode_set_file()
  - gif_file_h in mm_util_encode_to_gif_file()

Change-Id: I8c59125ff168f716124e7ce95a907016cf0ca107

gif/mm_util_gif.c

index 8a66f43..c463a1c 100644 (file)
@@ -594,6 +594,7 @@ int mm_util_gif_encode_set_file(mm_gif_file_h gif_file_h, const char *file_path)
        mm_util_retvm_if(!gif_file, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid handle");
        mm_util_retvm_if(!MMUTIL_STRING_VALID(file_path), MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid file_path");
 
+       g_free(gif_file->filename);
        gif_file->filename = g_strdup(file_path);
 
        return MM_UTIL_ERROR_NONE;
@@ -731,15 +732,14 @@ int mm_util_encode_to_gif_file(mm_util_image_h *images, const unsigned int image
        }
 
        ret = mm_util_gif_encode_save(gif_file_h);
-       if (ret != MM_UTIL_ERROR_NONE) {
+       if (ret != MM_UTIL_ERROR_NONE)
                mm_util_error("mm_util_gif_encode_save failed");
-               mm_util_gif_encode_destroy(gif_file_h);
-               return ret;
-       }
+
+       mm_util_gif_encode_destroy(gif_file_h);
 
        mm_util_fleave();
 
-       return MM_UTIL_ERROR_NONE;
+       return ret;
 }
 
 int mm_util_encode_to_gif_memory(mm_util_image_h *images, const unsigned int image_count, void **buffer, size_t *size)
@@ -775,17 +775,14 @@ int mm_util_encode_to_gif_memory(mm_util_image_h *images, const unsigned int ima
        }
 
        ret = mm_util_gif_encode_save(gif_file_h);
-       if (ret != MM_UTIL_ERROR_NONE) {
+       if (ret != MM_UTIL_ERROR_NONE)
                mm_util_error("mm_util_gif_encode_save failed");
-               mm_util_gif_encode_destroy(gif_file_h);
-               return ret;
-       }
 
        mm_util_gif_encode_destroy(gif_file_h);
 
        mm_util_fleave();
 
-       return MM_UTIL_ERROR_NONE;
+       return ret;
 }
 
 void mm_util_gif_encode_destroy(mm_gif_file_h gif_file_h)