diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-10-15 11:28:01 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-10-16 09:38:01 +0900 |
commit | a99b1db32de739fee9ff122b14823d1246278e74 (patch) | |
tree | c9fc37efd6472354fa8185ff42f48275b82066d9 | |
parent | d3b99e336589d9b2be031ad40cebf8372e01631a (diff) | |
download | efl-a99b1db32de739fee9ff122b14823d1246278e74.tar.gz |
fix edje_cc segv when compiling bling bling theme
accessed parts out of range for the part table. check part count first
before checking. fixes segv. @fix
blinblng: http://enform.haxlab.org/files/blingbling_e21.tgz
-rw-r--r-- | src/bin/edje/edje_cc_out.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 3ec1de3198..0f3d09b1f8 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -641,8 +641,11 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef) EINA_LIST_FOREACH(ep->targets, l, et) { - if (((ep->action == EDJE_ACTION_TYPE_STATE_SET) || (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)) && - (pc->parts[et->id]->type == EDJE_PART_TYPE_MESH_NODE) && strstr(ep->signal, "mouse")) + if (((ep->action == EDJE_ACTION_TYPE_STATE_SET) || + (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)) && + (et->id < (int)pc->parts_count) && + (pc->parts[et->id]->type == EDJE_PART_TYPE_MESH_NODE) && + (strstr(ep->signal, "mouse"))) { for (i = 0; (i < pc->parts_count) && (ep->source_3d_id < 0); i++) { |