stefan pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=703d179eb61e4d096c14398a15f02e79fc0647ef

commit 703d179eb61e4d096c14398a15f02e79fc0647ef
Author: Stefan Schmidt <[email protected]>
Date:   Thu Sep 4 14:18:58 2014 +0200

    edje_edit: Check return value of eet_list() to avoid NULL dereference.
    
    We check eet_list elsewhere and it might retrun NULL. Don't just hope
    keys will never be NULL. Check it.
    
    CID 1232733
---
 src/lib/edje/edje_edit.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 1be60a1..667f2e3 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -210,18 +210,21 @@ _edje_edit_efl_file_file_set(Eo *obj, Edje_Edit *eed, 
const char *file, const ch
    snprintf(buf, sizeof(buf), "edje/scripts/embryo/source/%i/*",
             eed->base->collection->id);
    keys = eet_list(ef, buf, &count);
-   for (i = 0; i < count; i++)
+   if (keys)
      {
-        Program_Script *ps;
-        int size;
+        for (i = 0; i < count; i++)
+          {
+             Program_Script *ps;
+             int size;
 
-        ps = calloc(1, sizeof(Program_Script));
+             ps = calloc(1, sizeof(Program_Script));
 
-        sscanf(keys[i] + len, "%*i/%i", &ps->id);
-        ps->code = eet_read(ef, keys[i], &size);
-        eina_hash_add(eed->program_scripts, &ps->id, ps);
+             sscanf(keys[i] + len, "%*i/%i", &ps->id);
+             ps->code = eet_read(ef, keys[i], &size);
+             eina_hash_add(eed->program_scripts, &ps->id, ps);
+          }
+        free(keys);
      }
-   if (keys) free(keys);
    eet_close(ef);
 
    ret = EINA_TRUE;

-- 


Reply via email to