Skip to content

Assertion context_p->stack_depth == 0 in parser_parse_statements #3713

@renatahodovan

Description

@renatahodovan
JerryScript revision

409e1fe

Build platform

Linux-4.15.0-88-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
function $(b = eval()) {
    ""()
    eval()
}
Output
ICE: Assertion 'context_p->stack_depth == 0' failed at jerryscript/jerry-core/parser/js/js-parser-statm.c(parser_parse_statements):2601.
Error: ERR_FAILED_INTERNAL_ASSERTION
ASAN:DEADLYSIGNAL
=================================================================
==3340==ERROR: AddressSanitizer: ABRT on unknown address 0x00000d0c (pc 0xf7f33079 bp 0xffacc02c sp 0xffacc010 T0)
    #0 0xf7f33078  (linux-gate.so.1+0x1078)
    #1 0xf7f33078  (linux-gate.so.1+0x1078)
    #2 0xf775a831 in raise (/lib/i386-linux-gnu/libc.so.6+0x2d831)
    #3 0xf775bcc0 in abort (/lib/i386-linux-gnu/libc.so.6+0x2ecc0)
    #4 0x56637f33 in jerry_port_fatal jerryscript/jerry-port/default/default-fatal.c:30
    #5 0x566edbe6 in jerry_fatal jerryscript/jerry-core/jrt/jrt-fatals.c:63
    #6 0x566edc27 in jerry_assert_fail jerryscript/jerry-core/jrt/jrt-fatals.c:87
    #7 0x56669029 in parser_parse_statements jerryscript/jerry-core/parser/js/js-parser-statm.c:2601
    #8 0x566ff46d in parser_parse_function jerryscript/jerry-core/parser/js/js-parser.c:2437
    #9 0x5665f1f6 in parser_parse_function_statement jerryscript/jerry-core/parser/js/js-parser-statm.c:792
    #10 0x56669a84 in parser_parse_statements jerryscript/jerry-core/parser/js/js-parser-statm.c:2806
    #11 0x566fcb23 in parser_parse_source jerryscript/jerry-core/parser/js/js-parser.c:2146
    #12 0x56700127 in parser_parse_script jerryscript/jerry-core/parser/js/js-parser.c:2657
    #13 0x56751b1d in jerry_parse jerryscript/jerry-core/api/jerry.c:448
    #14 0x5674e72d in main jerryscript/jerry-main/main-unix.c:750
    #15 0xf7745e80 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18e80)
    #16 0x5662b130  (jerryscript/build_gcc_asan_es2015/bin/jerry+0x1a130)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: ABRT (linux-gate.so.1+0x1078) 
==3340==ABORTING

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