edje_cc: fix a memory leak issue when edje_cc writes images
authorYoungbok Shin <youngb.shin@samsung.com>
Fri, 13 Oct 2017 18:55:02 +0000 (11:55 -0700)
committerCedric Bail <cedric@osg.samsung.com>
Fri, 13 Oct 2017 18:55:06 +0000 (11:55 -0700)
Summary:
If there is no given pathes for image files as parameter of edje_cc,
"img_dirs" will be NULL. Then, a local variable "load_err" is always
EVAS_LOAD_ERROR_NONE. Because of this, the "if" condition just after
EINA_LIST_FOREACH() will fail. It causes memory leak from "iw".
@fix

Test Plan: N/A

Reviewers: raster, cedric, jpeg, woohyun

Differential Revision: https://phab.enlightenment.org/D5285

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
src/bin/edje/edje_cc_out.c

index 391e46c..d793cac 100644 (file)
@@ -1390,7 +1390,7 @@ data_write_images(Eet_File *ef, int *image_num)
                   break;
                }
           }
-        if (load_err != EVAS_LOAD_ERROR_NONE)
+        if (!img_dirs || (load_err != EVAS_LOAD_ERROR_NONE))
           {
              evas_object_image_file_set(im, img->entry, NULL);
              load_err = evas_object_image_load_error_get(im);