Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stack-overflow in jmem_heap_alloc_block_internal #4779

Closed
marckwei opened this issue Sep 23, 2021 · 5 comments
Closed

stack-overflow in jmem_heap_alloc_block_internal #4779

marckwei opened this issue Sep 23, 2021 · 5 comments
Labels
stack-overflow Stack overflow caused by potential recursive call

Comments

@marckwei
Copy link

JerryScript revision

e1ce7dd

Build platform

Ubuntu 20.04.3 LTS (Linux 5.11.0-34-generic x86_64)
Linux-5.11.0-34-generic-x86_64-with-glibc2.29

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 --lto=off --stack-limit 10

Test case
function opt() {
    let obj = new opt();
    for (let i = 0; i < 1; i++) {
        obj.x = 1;
        obj = +obj;
        obj.x = 1;
    }
}

function main() {
    for (let i = 0; i < 100; i++) {
        opt();
    }
}

main();
Execution platform

the same as the build platform.

Output
AddressSanitizer:DEADLYSIGNAL
=================================================================
==1259593==ERROR: AddressSanitizer: stack-overflow on address 0xff275f1c (pc 0xf7a73bdb bp 0xff276348 sp 0xff275f00 T0)
    #0 0xf7a73bda in __interceptor_malloc (/lib32/libasan.so.5+0x113bda)
    #1 0x5661e74a in jmem_heap_alloc_block_internal (/home/weiwei/Desktop/jerry+0x3774a)
    #2 0x56620ba1 in jmem_pools_alloc /home/weiwei/Desktop/jerryscript/jerry-core/jmem/jmem-poolman.c:108
    #3 0x5681956c in ecma_alloc_object /home/weiwei/Desktop/jerryscript/jerry-core/ecma/base/ecma-alloc.c:81
    #4 0x56697174 in ecma_create_object /home/weiwei/Desktop/jerryscript/jerry-core/ecma/base/ecma-helpers.c:85
    #5 0x56707bdc in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1558
    #6 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #7 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #8 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #9 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #10 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #11 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #12 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #13 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #14 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #15 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #16 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #17 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #18 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #19 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #20 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #21 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #22 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #23 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #24 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #25 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #26 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #27 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #28 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #29 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #30 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #31 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #32 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #33 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #34 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #35 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #36 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #37 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #38 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #39 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #40 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #41 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #42 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #43 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #44 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #45 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #46 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #47 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #48 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #49 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #50 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #51 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #52 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #53 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #54 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #55 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #56 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #57 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #58 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #59 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #60 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #61 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #62 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #63 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #64 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #65 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #66 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #67 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #68 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #69 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #70 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #71 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #72 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #73 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #74 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #75 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #76 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #77 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #78 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #79 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #80 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #81 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #82 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #83 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #84 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #85 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #86 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #87 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #88 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #89 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #90 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #91 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #92 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #93 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #94 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #95 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #96 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #97 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #98 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #99 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #100 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #101 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #102 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #103 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #104 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #105 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #106 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #107 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #108 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #109 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #110 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #111 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #112 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #113 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #114 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #115 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #116 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #117 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #118 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #119 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #120 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #121 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #122 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #123 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #124 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #125 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #126 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #127 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #128 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #129 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #130 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #131 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #132 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #133 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #134 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #135 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #136 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #137 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #138 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #139 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #140 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #141 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #142 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #143 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #144 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #145 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #146 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #147 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #148 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #149 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #150 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #151 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #152 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #153 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #154 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #155 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #156 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #157 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #158 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #159 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #160 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #161 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #162 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #163 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #164 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #165 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #166 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #167 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #168 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #169 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #170 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #171 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #172 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #173 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #174 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #175 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #176 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #177 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #178 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #179 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #180 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #181 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #182 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #183 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #184 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #185 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #186 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #187 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #188 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #189 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #190 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #191 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #192 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #193 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #194 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #195 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #196 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #197 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #198 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #199 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #200 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #201 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #202 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #203 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #204 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #205 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #206 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #207 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #208 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #209 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #210 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #211 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #212 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #213 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #214 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #215 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #216 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #217 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #218 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #219 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #220 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #221 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #222 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #223 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #224 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #225 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #226 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #227 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #228 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #229 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #230 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #231 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #232 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #233 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #234 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #235 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #236 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #237 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #238 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #239 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #240 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #241 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #242 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #243 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #244 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #245 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #246 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #247 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #248 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #249 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #250 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #251 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #252 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #253 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #254 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #255 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #256 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #257 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #258 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #259 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #260 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #261 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #262 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #263 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #264 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #265 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #266 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #267 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #268 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #269 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #270 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #271 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #272 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #273 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #274 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #275 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #276 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #277 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #278 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #279 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #280 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #281 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #282 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #283 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #284 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #285 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #286 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #287 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #288 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #289 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #290 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #291 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #292 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #293 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #294 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #295 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #296 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #297 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #298 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #299 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #300 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #301 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #302 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258
    #303 0x568190a3 in vm_run /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5338
    #304 0x56701549 in ecma_op_function_call_simple /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1131
    #305 0x56707c47 in ecma_op_function_construct /home/weiwei/Desktop/jerryscript/jerry-core/ecma/operations/ecma-function-object.c:1573
    #306 0x56815ac8 in opfunc_construct /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:884
    #307 0x56815ac8 in vm_execute /home/weiwei/Desktop/jerryscript/jerry-core/vm/vm.c:5258

SUMMARY: AddressSanitizer: stack-overflow (/lib32/libasan.so.5+0x113bda) in __interceptor_malloc
==1259593==ABORTING

Backtrace

see above

@zherczeg
Copy link
Member

new opt() is a recursive call. Enable stack check build option to avoid this. Your code does not make much sense to me, what are you trying to do?

@marckwei
Copy link
Author

new opt() is a recursive call. Enable stack check build option to avoid this. Your code does not make much sense to me, what are you trying to do?

This sample is just for testing. --stack-limit 10 was applied during the build,but the program still crashed.

@zherczeg
Copy link
Member

This is obviously an inifinite recursive call, maybe a stack limit check could be added somewhere to stop this. Do you want to fix it? This is a great opportunity for you to learn about the engine internals.

@rerobika
Copy link
Member

I think you should simply reduce the limit for e.g.5, 2, or 1 KB

@rerobika
Copy link
Member

The expected RangeError is raised by --stack-limit=1.

@rerobika rerobika added question Raised question stack-overflow Stack overflow caused by potential recursive call and removed question Raised question labels Oct 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stack-overflow Stack overflow caused by potential recursive call
Projects
None yet
Development

No branches or pull requests

3 participants