cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1b1e0450a2ae7011fe6478f6001d4d96d67756c9

commit 1b1e0450a2ae7011fe6478f6001d4d96d67756c9
Author: Cedric BAIL <cedric.b...@samsung.com>
Date:   Fri Mar 7 15:01:36 2014 +0900

    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 105f25a..4bf1531 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;
 }

-- 


Reply via email to