From 1b1e0450a2ae7011fe6478f6001d4d96d67756c9 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 7 Mar 2014 15:01:36 +0900 Subject: [PATCH] edje: do not leak in case of error. @fix CID 1191310 and CID 1191311 --- src/lib/edje/edje_edit.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 105f25a2a9..4bf1531487 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -4336,17 +4336,21 @@ edje_edit_state_external_param_set(Evas_Object *obj, const char *part, const cha eina_stringshare_del(sname); } - if (!found && p && external->external_params) - external->external_params = eina_list_append(external->external_params, p); + if (!found) + { + if (external) + external->external_params = eina_list_append(external->external_params, p); + else + free(p); + } if (rp->typedata.swallow && rp->param1.external_params) - _edje_external_parsed_params_free(rp->typedata.swallow->swallowed_object, - rp->param1.external_params); + _edje_external_parsed_params_free(rp->typedata.swallow->swallowed_object, + rp->param1.external_params); if (rp->typedata.swallow && external->external_params) rp->param1.external_params = \ - _edje_external_params_parse(rp->typedata.swallow->swallowed_object, - external->external_params); - + _edje_external_params_parse(rp->typedata.swallow->swallowed_object, + external->external_params); return EINA_TRUE; }