discomfitor pushed a commit to branch efl-1.16. http://git.enlightenment.org/core/efl.git/commit/?id=0f9263f8723c73f328c0c37911ee37f7112b48e6
commit 0f9263f8723c73f328c0c37911ee37f7112b48e6 Author: Mike Blumenkrantz <zm...@osg.samsung.com> Date: Wed Dec 16 14:34:20 2015 -0500 edje_cc: terminate filter file scripts ==24030== Invalid read of size 1 ==24030== at 0x4A0AC77: strcmp (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24030== by 0x598A9DC: _eet_dictionary_lookup (eet_dictionary.c:69) ==24030== by 0x598AA93: eet_dictionary_string_add (eet_dictionary.c:103) ==24030== by 0x598107B: eet_data_put_string (eet_data.c:857) ==24030== by 0x598213F: eet_data_put_type (eet_data.c:1433) ==24030== by 0x59895AB: eet_data_put_unknown (eet_data.c:4798) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x59894A4: eet_data_put_array (eet_data.c:4760) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x5989617: eet_data_put_unknown (eet_data.c:4807) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x5983E06: eet_data_write_cipher (eet_data.c:2396) ==24030== by 0x5983E92: eet_data_write (eet_data.c:2412) ==24030== by 0x406BC2: data_thread_head (edje_cc_out.c:674) ==24030== by 0x406D51: data_write_header (edje_cc_out.c:717) ==24030== by 0x40B52E: data_write (edje_cc_out.c:2439) ==24030== by 0x40563D: main (edje_cc.c:399) ==24030== Address 0xf45cb7b is 0 bytes after a block of size 347 alloc'd ==24030== at 0x4A089C7: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24030== by 0x414BAC: mem_alloc (edje_cc_mem.c:15) ==24030== by 0x41B66A: st_filters_filter_file (edje_cc_handlers.c:4718) ==24030== by 0x410EDA: new_statement (edje_cc_parse.c:229) ==24030== by 0x41227C: parse (edje_cc_parse.c:719) ==24030== by 0x412E5C: compile (edje_cc_parse.c:1044) ==24030== by 0x405624: main (edje_cc.c:394) ==24030== ==24030== Invalid read of size 1 ==24030== at 0x4A0AC77: strcmp (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24030== by 0x598AAFB: eet_dictionary_string_add (eet_dictionary.c:109) ==24030== by 0x598107B: eet_data_put_string (eet_data.c:857) ==24030== by 0x598213F: eet_data_put_type (eet_data.c:1433) ==24030== by 0x59895AB: eet_data_put_unknown (eet_data.c:4798) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x59894A4: eet_data_put_array (eet_data.c:4760) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x5989617: eet_data_put_unknown (eet_data.c:4807) ==24030== by 0x598A113: _eet_data_descriptor_encode (eet_data.c:5172) ==24030== by 0x5983E06: eet_data_write_cipher (eet_data.c:2396) ==24030== by 0x5983E92: eet_data_write (eet_data.c:2412) ==24030== by 0x406BC2: data_thread_head (edje_cc_out.c:674) ==24030== by 0x406D51: data_write_header (edje_cc_out.c:717) ==24030== by 0x40B52E: data_write (edje_cc_out.c:2439) ==24030== by 0x40563D: main (edje_cc.c:399) ==24030== Address 0xf45cb7b is 0 bytes after a block of size 347 alloc'd ==24030== at 0x4A089C7: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==24030== by 0x414BAC: mem_alloc (edje_cc_mem.c:15) ==24030== by 0x41B66A: st_filters_filter_file (edje_cc_handlers.c:4718) ==24030== by 0x410EDA: new_statement (edje_cc_parse.c:229) ==24030== by 0x41227C: parse (edje_cc_parse.c:719) ==24030== by 0x412E5C: compile (edje_cc_parse.c:1044) ==24030== by 0x405624: main (edje_cc.c:394) @fix --- src/bin/edje/edje_cc_handlers.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index e857e53..82574a3 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -4555,8 +4555,7 @@ st_filters_filter_file(void) exit(-1); } - current_filter->script = mem_alloc(sz); - memcpy((char *) current_filter->script, script, sz); + current_filter->script = (char*)eina_memdup((unsigned char*)script, sz, 1); eina_file_map_free(f, script); eina_file_close(f); --