jerryscript-project / jerryscript

Ultra-lightweight JavaScript engine for the Internet of Things.
https://jerryscript.net
Apache License 2.0
6.92k stars 669 forks source link

Assertion 'lit_is_valid_cesu8_string (string_p, string_size)' failed in ecma_new_ecma_string_from_utf8 #1990

Closed renatahodovan closed 6 years ago

renatahodovan commented 7 years ago
Jerry version:
Checked revision: 0ef2418
Build command: ./tools/build.py --clean --debug
OS:
Ubuntu 16.04.3 LTS
Test case:
unescape("%f׊nd")

Download test case

Backtrace:
ICE: Assertion 'lit_is_valid_cesu8_string (string_p, string_size)' failed at jerryscript/jerry-core/ecma/base/ecma-helpers-string.c(ecma_new_ecma_string_from_utf8):154.
Error: ERR_FAILED_INTERNAL_ASSERTION

Program received signal SIGABRT, Aborted.
(gdb) bt
#0  0x00000000005e4d28 in raise ()
#1  0x00000000005e4eda in abort ()
#2  0x000000000057ec65 in jerry_port_fatal (code=ERR_FAILED_INTERNAL_ASSERTION)
    at jerryscript/jerry-port/default/default-fatal.c:71
#3  jerry_fatal (code=code@entry=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-core/jrt/jrt-fatals.c:58
#4  0x000000000057f350 in jerry_assert_fail (assertion=<optimized out>, file=<optimized out>, function=<optimized out>, line=<optimized out>)
    at jerryscript/jerry-core/jrt/jrt-fatals.c:82
#5  0x000000000040eac9 in ecma_new_ecma_string_from_utf8 (string_p=0x9c6458 <jerry_global_heap+296> "%f\327ýd", string_size=5)
    at jerryscript/jerry-core/ecma/base/ecma-helpers-string.c:154
#6  0x00000000004b65c6 in ecma_builtin_global_object_unescape.isra.12 (arg=<optimized out>)
    at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-global.c:1336
#7  ecma_builtin_global_dispatch_routine (builtin_routine_id=<optimized out>, this_arg_value=<optimized out>, arguments_list=<optimized out>, 
    arguments_number=<optimized out>) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtin-global.inc.h:215
#8  0x0000000000441430 in ecma_builtin_dispatch_routine.lto_priv.316 (builtin_object_id=<optimized out>, builtin_routine_id=<optimized out>, 
    this_arg_value=72, arguments_list=0x7fffffffcf44, arguments_number=<optimized out>)
    at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.inc.h:484
#9  0x000000000049dd72 in ecma_builtin_dispatch_call (obj_p=0x9c6440 <jerry_global_heap+272>, this_arg_value=72, arguments_list_p=0x7fffffffcf44, 
    arguments_list_len=1) at jerryscript/jerry-core/ecma/builtin-objects/ecma-builtins.c:844
#10 0x0000000000571830 in ecma_op_function_call (func_obj_p=0x9c6440 <jerry_global_heap+272>, this_arg_value=72, arguments_list_p=0x7fffffffcf44, 
    arguments_list_len=1) at jerryscript/jerry-core/ecma/operations/ecma-function-object.c:419
#11 0x00000000005c5f7d in opfunc_call.isra.1 () at jerryscript/jerry-core/vm/vm.c:408
#12 vm_execute (frame_ctx_p=frame_ctx_p@entry=0x7fffffffcf50, arg_p=<optimized out>, arg_list_len=<optimized out>)
    at jerryscript/jerry-core/vm/vm.c:2743
#13 0x00000000005cbbba in vm_run (bytecode_header_p=<optimized out>, this_binding_value=<optimized out>, lex_env_p=<optimized out>, 
    is_eval_code=<optimized out>, arg_list_p=<optimized out>, arg_list_len=<optimized out>)
    at jerryscript/jerry-core/vm/vm.c:2823
#14 0x00000000004094b8 in vm_run_global (bytecode_p=0x9c6568 <jerry_global_heap+568>) at jerryscript/jerry-core/vm/vm.c:231
#15 jerry_run (func_val=259) at jerryscript/jerry-core/api/jerry.c:444
#16 main (argc=<optimized out>, argv=<optimized out>) at jerryscript/jerry-main/main-unix.c:707

Found by Fuzzinator

rerobika commented 6 years ago

@yichoi @LaszloLango Can we close this issue?