forked from enlightenment/efl
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
This commit is contained in:
parent
0d9f0d8ffb
commit
703d179eb6
|
@ -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/*",
|
snprintf(buf, sizeof(buf), "edje/scripts/embryo/source/%i/*",
|
||||||
eed->base->collection->id);
|
eed->base->collection->id);
|
||||||
keys = eet_list(ef, buf, &count);
|
keys = eet_list(ef, buf, &count);
|
||||||
for (i = 0; i < count; i++)
|
if (keys)
|
||||||
{
|
{
|
||||||
Program_Script *ps;
|
for (i = 0; i < count; i++)
|
||||||
int size;
|
{
|
||||||
|
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);
|
sscanf(keys[i] + len, "%*i/%i", &ps->id);
|
||||||
ps->code = eet_read(ef, keys[i], &size);
|
ps->code = eet_read(ef, keys[i], &size);
|
||||||
eina_hash_add(eed->program_scripts, &ps->id, ps);
|
eina_hash_add(eed->program_scripts, &ps->id, ps);
|
||||||
|
}
|
||||||
|
free(keys);
|
||||||
}
|
}
|
||||||
if (keys) free(keys);
|
|
||||||
eet_close(ef);
|
eet_close(ef);
|
||||||
|
|
||||||
ret = EINA_TRUE;
|
ret = EINA_TRUE;
|
||||||
|
|
Loading…
Reference in New Issue