Skip to content

SEGV mjs/src/mjs_core.c:348:13 in mjs_stack_size #201

Open
@hope-fly

Description

@hope-fly
mJS revision

Commit: b1b6eac

Build platform

Ubuntu 18.04.5 LTS (Linux 5.4.0-44-generic x86_64)

Build steps
vim Makefile
DOCKER_CLANG=clang
$(DOCKER_CLANG) $(CFLAGS) $(TOP_MJS_SOURCES) $(TOP_COMMON_SOURCES) -o $(PROG)
# save the makefile then make
make
Test case
poc.js

(function () {
    ((function JSEtes(a) {
        if (a > Object.create - (Object.create - -(a - 1) || ~(Object.create - -0))()) {
            if ((a - 1) || ~(Object.create - -0)) {
                JSEtes(a - 1)
            }
        }
    })(200))
})()

Execution steps & Output
$ ./mjs/build/mjs poc.js
AddressSanitizer:DEADLYSIGNAL
=================================================================
==ERROR: AddressSanitizer: SEGV on unknown address 0x01827fff800a (pc 0x00000053f631 bp 0x7ffd7d96fcb0 sp 0x7ffd7d96f820 T0)
==The signal is caused by a READ memory access.
    #0 0x53f630 in mjs_stack_size /root/mjs/src/mjs_core.c:348:13
    #1 0x53f630 in mjs_arg /root/mjs/src/mjs_core.c:326
    #2 0x589a07 in mjs_op_create_object /root/mjs/src/mjs_object.c:270:23
    #3 0x55178f in mjs_exec_internal /root/mjs/src/mjs_exec.c:1073:5
    #4 0x552d2d in mjs_exec_file /root/mjs/src/mjs_exec.c:1096:11
    #5 0x5821d3 in main /root/mjs/src/mjs_main.c:47:11
    #6 0x7fa839d17b96 in __libc_start_main /build/glibc-2ORdQG/glibc-2.27/csu/../csu/libc-start.c:310
    #7 0x41a2c9 in _start (/usr/local/bin/mjs+0x41a2c9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /root/mjs/src/mjs_core.c:348:13 in mjs_stack_size
==ABORTING

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