Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created October 22, 2017 18:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dogbert17/909a5661c659fa1a7f2f7f93af9c9d4f to your computer and use it in GitHub Desktop.
Save dogbert17/909a5661c659fa1a7f2f7f93af9c9d4f to your computer and use it in GitHub Desktop.
ASAN barfage in t/spec/S17-lowlevel/thread.t
ok 23 - Correct $*THREAD instance in thread 2 after finish
ok 24 - $*THREAD available in initial thread
ok 25 - Initial thread has an ID
=================================================================
==27078== ERROR: AddressSanitizer: heap-use-after-free on address 0xb4c3d994 at pc 0xb5461913 bp 0x939f8968 sp 0x939f895c
READ of size 4 at 0xb4c3d994 thread T15
#0 0xb5461912 in MVM_frame_capturelex /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/frame.c:1027
#1 0xb4b0271b in p6capturelex (./dynext/libperl6_ops_moar.so+0x171b)
#2 0xb541f8b2 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:5885
#3 0xb547f88f in start_thread /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:85
#4 0xb614d9c6 (/usr/lib/i386-linux-gnu/libasan.so.0+0x1a9c6)
#5 0xb613d2ac (/usr/lib/i386-linux-gnu/libasan.so.0+0xa2ac)
#6 0xb5051f71 in start_thread (/lib/i386-linux-gnu/libpthread.so.0+0x6f71)
#7 0xb51553ed (/lib/i386-linux-gnu/libc.so.6+0xee3ed)
0xb4c3d994 is located 20 bytes inside of 488-byte region [0xb4c3d980,0xb4c3db68)
freed by thread T14 here:
#0 0xb6149774 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16774)
#1 0xb54471e8 in MVM_free /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:40
#2 0xb54471e8 in MVM_tc_destroy /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:113
#3 0xb54cd3f8 in finish_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:210
#4 0xb54cd3f8 in run_gc /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:373
#5 0xb54cf3d6 in MVM_gc_enter_from_allocator /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/orchestrate.c:486
#6 0xb54d0aff in MVM_gc_allocate_nursery /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.c:32
#7 0xb54d0c19 in MVM_gc_allocate /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.h:13
#8 0xb54d0c19 in MVM_gc_allocate_zeroed /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.c:49
#9 0xb54d17fc in MVM_gc_allocate_object /home/dogbert/repos/rakudo/nqp/MoarVM/src/gc/allocation.c:86
#10 0xb54627f5 in MVM_frame_takeclosure /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/frame.c:1070
#11 0xb53ee5ed in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:1185
#12 0xb547f88f in start_thread /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:85
#13 0xb614d9c6 (/usr/lib/i386-linux-gnu/libasan.so.0+0x1a9c6)
#14 0xb51553ed (/lib/i386-linux-gnu/libc.so.6+0xee3ed)
previously allocated by thread T0 here:
#0 0xb6149905 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16905)
#1 0xb5446807 in MVM_calloc /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:11
#2 0xb5446807 in MVM_tc_create /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threadcontext.c:8
#3 0xb547fef1 in MVM_thread_new /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/threads.c:29
#4 0xb541233a in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:3739
#5 0xb57d1497 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:401
#6 0x8049153 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:257
#7 0xb5080af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
Thread T15 created by T0 here:
#0 0xb613d1d0 (/usr/lib/i386-linux-gnu/libasan.so.0+0xa1d0)
#1 0xb57f24e2 in uv_thread_create /home/dogbert/repos/rakudo/nqp/MoarVM/3rdparty/libuv/src/unix/thread.c:179
#2 0xb540ba0b in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:4060
#3 0xb57d1497 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:401
#4 0x8049153 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:257
#5 0xb5080af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
Thread T14 created by T0 here:
#0 0xb613d1d0 (/usr/lib/i386-linux-gnu/libasan.so.0+0xa1d0)
#1 0xb57f24e2 in uv_thread_create /home/dogbert/repos/rakudo/nqp/MoarVM/3rdparty/libuv/src/unix/thread.c:179
#2 0xb540ba0b in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:4060
#3 0xb57d1497 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:401
#4 0x8049153 in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:257
#5 0xb5080af2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
SUMMARY: AddressSanitizer: heap-use-after-free /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/frame.c:1027 MVM_frame_capturelex
Shadow bytes around the buggy address:
0x36987ae0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987af0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987b00: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987b10: fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa fa
0x36987b20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x36987b30: fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987b40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987b50: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x36987b60: fd fd fd fd fd fd fd fd fd fd fd fd fd fa fa fa
0x36987b70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x36987b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap righ redzone: fb
Freed Heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
ASan internal: fe
==27078== ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment