summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlastair Poole <netstar@gmail.com>2019-06-07 19:34:19 +0000
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-06-09 13:15:09 +0200
commite8e637a79a6cfb2bfec53e9afccde1f216220571 (patch)
tree00a35607193c79d838993f2f5223fe3a638eb832
parent8ae4dbfb3f63b61d1f08a1fc983d59c742011093 (diff)
downloadefl-e8e637a79a6cfb2bfec53e9afccde1f216220571.tar.gz
edje_cc_out: Exit instead of segfault on OpenBSD.
Until the cause of these issues can be found exit and print error messages to console. edje_cc is currently not reliable on OpenBSD. Until then anyone wanting to use EFL on this platform will need pre-compiled .edj files. Differential Revision: https://phab.enlightenment.org/D9077
-rw-r--r--src/bin/edje/edje_cc_out.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 8a3bcfb3e5..592b592736 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -734,6 +734,12 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef)
{
Edje_Part *part;
+ if (et->id >= (int) pc->parts_count)
+ {
+ ERR("Target id '%d' greater than possible index '%d'.", et->id, (int) pc->parts_count - 1);
+ exit(-1);
+ }
+
part = pc->parts[et->id];
/* verify existence of description in part */
if (ep->action == EDJE_ACTION_TYPE_STATE_SET)