Thanks to visit codestin.com
Credit goes to github.com

Skip to content

stack-buffer-underflow at 3nd call op test/flow/except.pn #14

@rurban

Description

@rurban

-B and -X

$ ./potion -V -B test/flow/except.pn  2>&1 |less
[21] loadpn   0 3       ; 1
[22] move     1 0       ; 1
[23] loadk    0 3       ; to
[24] message  0 1       ; function(end)
[25] loadpn   2 5       ; 2
[26] proto    3 4       ; function(x)
[29] call     0 3-- run-time --
[ 1] getupval 0 0       ; function(block, catch)
[ 2] self     1 ; Lobby
[ 3] proto    2 0       ; function()
[ 6] proto    3 1       ; function(e)
[ 7] call     0 3-- run-time --
[ 1] newtuple 0 0       ; ()
[ 2] setlocal 0 2       ; ()
[ 3] self     1 ; Lobby
[ 4] loadk    0 0       ; here
[ 5] bind     0 1       ; function()
[ 6] loadpn   2 0       ; nil
[ 7] call     0 2=================================================================
==30674== ERROR: AddressSanitizer: stack-buffer-underflow on address 0x7fff7c3e39a0 at pc 0x40d876 bp 0x7fff7c3e2e60 sp 0x7fff7c3e2620
READ of size 1 at 0x7fff7c3e39a0 thread T0
    #0 0x40d875 in __interceptor_memcpy (/home/rurban/Perl/p2/p2/potion+0x40d875)
    #1 0x7fa33b13d735 in potion_callcc (./libpotion.so+0xd6735)
    #2 0x7fa33b1dae61 in potion_call /usr/src/p2/p2/core/internal.c:130
    #3 0x7fa33b272cc8 in potion_vm /usr/src/p2/p2/core/vm.c:435
    #4 0x7fa33b263630 in potion_vm_proto /usr/src/p2/p2/core/vm.c:74
    #5 0x7fa33b1f2c3a in potion_num_to /usr/src/p2/p2/core/number.c:119
    #6 0x7fa33b1db10c in potion_call /usr/src/p2/p2/core/internal.c:132
    #7 0x7fa33b272cc8 in potion_vm /usr/src/p2/p2/core/vm.c:435
    #8 0x41e4e8 in potion_cmd_compile /usr/src/p2/p2/front/potion.c:106
    #9 0x41c5f5 in main /usr/src/p2/p2/front/potion.c:240
    #10 0x7fa33a443eac (/lib/x86_64-linux-gnu/libc.so.6+0x1eeac)
Address 0x7fff7c3e39a0 is located at offset 0 in frame <potion_call> of T0's stack:
  This frame has 6 object(s):
    [32, 40) 'retval'
    [96, 104) 'P.addr'
    [160, 168) 'cl.addr'
    [224, 228) 'argc.addr'
    [288, 296) 'argv.addr'
    [352, 360) 'c'
#1  0x000000000040d8a4 in memcpy ()
#2  0x00007ffff7bf3f06 in potion_callcc () from ./libpotion.so
#3  0x00007ffff7c91652 in potion_call (P=0x7ffff7f70060, cl=140737353594048, argc=2, argv=0x7ffffffe8e00)
    at core/internal.c:130
#4  0x00007ffff7d294b9 in potion_vm (P=0x7ffff7f70060, proto=140737352523328, self=140737353581352, 
    vargs=140737352290536, upc=0, upargs=0x7ffff7e3cf30) at core/vm.c:435
#5  0x00007ffff7d19e21 in potion_vm_proto (P=0x7ffff7f70060, cl=140737352290392, self=140737353581352)
    at core/vm.c:74
#6  0x00007ffff7ca942b in potion_num_to (P=0x7ffff7f70060, cl=140737353601704, self=3, end=5, 
    block=140737352290392) at core/number.c:119
#7  0x00007ffff7c918fd in potion_call (P=0x7ffff7f70060, cl=140737353601704, argc=3, argv=0x7fffffff52e0)
    at core/internal.c:132

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions