From ba95606159b8b151c1261426ab5d477664655c4f Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 2 Jul 2010 15:37:37 +0000 Subject: [PATCH] * edje: prevent some segv in edje_cc and detect wrong edje file before compiling them. Patch by Rafael Fonseca . SVN revision: 49999 --- legacy/edje/src/bin/edje_cc_handlers.c | 2 +- legacy/edje/src/bin/edje_cc_parse.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/legacy/edje/src/bin/edje_cc_handlers.c b/legacy/edje/src/bin/edje_cc_handlers.c index 438cf3789c..67e92cfb38 100644 --- a/legacy/edje/src/bin/edje_cc_handlers.c +++ b/legacy/edje/src/bin/edje_cc_handlers.c @@ -1586,7 +1586,7 @@ st_styles_style_name(void) stl->name = parse_str(0); EINA_LIST_FOREACH(edje_file->styles, l, tstl) { - if ((stl != tstl) && (!strcmp(stl->name, tstl->name))) + if (stl->name && tstl->name && (stl != tstl) && (!strcmp(stl->name, tstl->name))) { ERR("%s: Error. parse error %s:%i. There is already a style named \"%s\"", progname, file_in, line - 1, stl->name); diff --git a/legacy/edje/src/bin/edje_cc_parse.c b/legacy/edje/src/bin/edje_cc_parse.c index 24196cffcc..7c53ffdf31 100644 --- a/legacy/edje/src/bin/edje_cc_parse.c +++ b/legacy/edje/src/bin/edje_cc_parse.c @@ -644,6 +644,8 @@ compile(void) int fd; off_t size; char *data, *p; + Eina_List *l; + Edje_Style *stl; if (!tmp_dir) #ifdef HAVE_EVIL @@ -807,6 +809,13 @@ compile(void) } free(data); close(fd); + + EINA_LIST_FOREACH(edje_file->styles, l, stl) + if (!stl->name) + { + ERR("%s: Error. style must have a name.", progname); + exit(-1); + } } int