summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-10-15 11:28:01 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-10-16 09:38:01 +0900
commita99b1db32de739fee9ff122b14823d1246278e74 (patch)
treec9fc37efd6472354fa8185ff42f48275b82066d9
parentd3b99e336589d9b2be031ad40cebf8372e01631a (diff)
downloadefl-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.c7
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++)
{