edje_cc: fix a memory leak issue when edje_cc writes images 25/156025/2
authorYoungbok Shin <youngb.shin@samsung.com>
Tue, 17 Oct 2017 04:07:03 +0000 (13:07 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Tue, 17 Oct 2017 05:37:10 +0000 (05:37 +0000)
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>
Change-Id: I7d82df3258c227c9880fac6d81199782f45bc436

src/bin/edje/edje_cc_out.c

index 95456ae..b0a0e42 100644 (file)
@@ -1282,7 +1282,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);