Skip to content

Assertion context_p->token.type != LEXER_COLON in parser_parse_case_statement #3131

@renatahodovan

Description

@renatahodovan
JerryScript revision

c05686b

Build platform

Linux-4.15.0-62-generic-x86_64-with-Ubuntu-18.04-bionic

Build steps
./tools/build.py --clean --debug --compile-flag=-fsanitize=address \
--compile-flag=-m32 --compile-flag=-fno-omit-frame-pointer \
--compile-flag=-fno-common --compile-flag=-g \
--strip=off --system-allocator=on --logging=on \
--linker-flag=-fuse-ld=gold --error-messages=on --profile=es2015-subset
Test case
switch ( $) { case $: for ( ; ; ) ; case $ :} 
Output
ICE: Assertion 'context_p->token.type != LEXER_COLON' failed at jerryscript/jerry-core/parser/js/js-parser-statm.c(parser_parse_case_statement):1540.
Error: ERR_FAILED_INTERNAL_ASSERTION
Backtrace
bt
#0  0xf7fd5079 in __kernel_vsyscall ()
#1  0xf77fc832 in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xf77fdcc1 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0x56579853 in jerry_port_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-port/default/default-fatal.c:71
#4  0x5661441a in jerry_fatal (code=ERR_FAILED_INTERNAL_ASSERTION) at jerryscript/jerry-core/jrt/jrt-fatals.c:58
#5  0x5661445b in jerry_assert_fail (assertion=0x56694bc0 "context_p->token.type != LEXER_COLON", file=0x56694ae0 "jerryscript/jerry-core/parser/js/js-parser-statm.c", function=0x56695800 <__func__.5426> "parser_parse_case_statement", line=1540) at jerryscript/jerry-core/jrt/jrt-fatals.c:82
#6  0x5656bf71 in parser_parse_case_statement (context_p=0xffffc4b0) at jerryscript/jerry-core/parser/js/js-parser-statm.c:1540
#7  0x5656fef4 in parser_parse_statements (context_p=0xffffc4b0) at jerryscript/jerry-core/parser/js/js-parser-statm.c:2443
#8  0x565d157a in parser_parse_source (arg_list_p=0x0, arg_list_size=0, source_p=0x566efb40 <buffer.lto_priv> "switchMark : switch ( 1 ) { case 0 : for ( var i = 0 ; i < 10 ; i ++ ) { if ( i === 5 ) { \n} \n\nsum += i ; \n} \n\ncase 1 : break switchMark ; \ncase 2 : print ( false ) ; \n} \n\n ", source_size=173, parse_opts=0, error_location_p=0xffffc6c0) at jerryscript/jerry-core/parser/js/js-parser.c:2534
#9  0x565d4361 in parser_parse_script (arg_list_p=0x0, arg_list_size=0, source_p=0x566efb40 <buffer.lto_priv> "switchMark : switch ( 1 ) { case 0 : for ( var i = 0 ; i < 10 ; i ++ ) { if ( i === 5 ) { \n} \n\nsum += i ; \n} \n\ncase 1 : break switchMark ; \ncase 2 : print ( false ) ; \n} \n\n ", source_size=173, parse_opts=0, bytecode_data_p=0xffffc780) at jerryscript/jerry-core/parser/js/js-parser.c:3001
#10 0x56648225 in jerry_parse (resource_name_p=0xffffcd91 "/home/reni/.fuzzinator_8669//jerryscript/picireny/171112874346830202183078347896675941171.js", resource_name_length=92, source_p=0x566efb40 <buffer.lto_priv> "switchMark : switch ( 1 ) { case 0 : for ( var i = 0 ; i < 10 ; i ++ ) { if ( i === 5 ) { \n} \n\nsum += i ; \n} \n\ncase 1 : break switchMark ; \ncase 2 : print ( false ) ; \n} \n\n ", source_size=173, parse_opts=0) at jerryscript/jerry-core/api/jerry.c:426
#11 0x56645015 in main (argc=3, argv=0xffffcb14) at jerryscript/jerry-main/main-unix.c:734

Found by Fuzzinator with grammarinator.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions