edje-codegen: Now really fix the mem leak without running into a double free.
authorStefan Schmidt <s.schmidt@samsung.com>
Fri, 14 Jun 2013 10:54:46 +0000 (11:54 +0100)
committerSungho Kwak <sungho1.kwak@samsung.com>
Thu, 27 Jun 2013 07:09:40 +0000 (16:09 +0900)
The missing free was only for one of the paths to the end label. The other one
freed it before already. Take this into account to avoid the double free.

Backport from upstream 90aee3addd577461c3bf1b8d52fb816f80c6c45e

Change-Id: Ieffc4f5a05f54b21f06819028c9356af3a90648a

src/bin/edje_codegen.c

index 2504b97..cd61ef0 100644 (file)
@@ -811,7 +811,11 @@ _parse_parts(Evas_Object *ed)
        if (type == EDJE_PART_TYPE_EXTERNAL)
          {
             ei = calloc(1, sizeof(Part_External_Info));
-            if (!ei) goto end;
+            if (!ei)
+               {
+                  free(apiname);
+                  goto end;
+               }
             ei->description = description;
             ei->source = edje_edit_part_source_get(ed, name);
             ei->apiname = apiname;