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-15 11:28:01 +0900 |
commit | 14aca77bfca6e5a50f9fa519e955a5b752f4d6b4 (patch) | |
tree | bf2bde531067d68f9d2afee84c6bdb1dc94659b1 | |
parent | 3d6aae46331ec186b5b7db232925da76894d132e (diff) |
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
Diffstat (limited to '')
-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 ab04fed4da..13c809e8b5 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c | |||
@@ -644,8 +644,11 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef) | |||
644 | 644 | ||
645 | EINA_LIST_FOREACH(ep->targets, l, et) | 645 | EINA_LIST_FOREACH(ep->targets, l, et) |
646 | { | 646 | { |
647 | if (((ep->action == EDJE_ACTION_TYPE_STATE_SET) || (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)) && | 647 | if (((ep->action == EDJE_ACTION_TYPE_STATE_SET) || |
648 | (pc->parts[et->id]->type == EDJE_PART_TYPE_MESH_NODE) && strstr(ep->signal, "mouse")) | 648 | (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)) && |
649 | (et->id < (int)pc->parts_count) && | ||
650 | (pc->parts[et->id]->type == EDJE_PART_TYPE_MESH_NODE) && | ||
651 | (strstr(ep->signal, "mouse"))) | ||
649 | { | 652 | { |
650 | for (i = 0; (i < pc->parts_count) && (ep->source_3d_id < 0); i++) | 653 | for (i = 0; (i < pc->parts_count) && (ep->source_3d_id < 0); i++) |
651 | { | 654 | { |