Skip to content

Instantly share code, notes, and snippets.

@timo
Created March 28, 2015 15:12
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 timo/b2bdc015f8937bf43fa2 to your computer and use it in GitHub Desktop.
Save timo/b2bdc015f8937bf43fa2 to your computer and use it in GitHub Desktop.
ASan barfage during an HTTP::Server::Async run
=================================================================
==3058==ERROR: AddressSanitizer: heap-use-after-free on address 0x61600026c210 at pc 0x7fdac63de134 bp 0x7fdabe9c75f0 sp 0x7fdabe9c75e0
READ of size 8 at 0x61600026c210 thread T3
#0 0x7fdac63de133 in MVM_interp_run src/core/interp.c:846
#1 0x7fdac646c7a3 in start_thread src/core/threads.c:64
#2 0x7fdac6679276 in uv__thread_start 3rdparty/libuv/src/unix/thread.c:49
#3 0x344f207529 in start_thread (/lib64/libpthread.so.0+0x344f207529)
#4 0x344ef0022c in __clone (/lib64/libc.so.6+0x344ef0022c)
0x61600026c210 is located 144 bytes inside of 640-byte region [0x61600026c180,0x61600026c400)
freed by thread T3 here:
#0 0x7fdac6e1754f in __interceptor_free (/lib64/libasan.so.1+0x5754f)
#1 0x7fdac64a0b02 in MVM_free src/core/alloc.h:29
#2 0x7fdac64a1a60 in MVM_fixed_size_free src/core/fixedsizealloc.c:178
#3 0x7fdac644e530 in MVM_frame_dec_ref src/core/frame.c:104
#4 0x7fdac652e3ad in gc_free src/6model/reprs/MVMCode.c:70
#5 0x7fdac64c0555 in MVM_gc_collect_free_nursery_uncopied src/gc/collect.c:549
#6 0x7fdac64b031a in run_gc src/gc/orchestrate.c:308
#7 0x7fdac64b09db in MVM_gc_enter_from_allocator src/gc/orchestrate.c:408
#8 0x7fdac64b1032 in MVM_gc_allocate_nursery src/gc/allocation.c:32
#9 0x7fdac64b1188 in MVM_gc_allocate_zeroed src/gc/allocation.c:49
#10 0x7fdac64b1605 in MVM_gc_allocate_object src/gc/allocation.c:85
#11 0x7fdac64f45a1 in MVM_repr_alloc_init src/6model/reprconv.c:13
#12 0x7fdac660e572 in MVM_string_substring src/strings/ops.c:252
#13 0x7fdac63e8a51 in MVM_interp_run src/core/interp.c:1335
#14 0x7fdac646c7a3 in start_thread src/core/threads.c:64
#15 0x7fdac6679276 in uv__thread_start 3rdparty/libuv/src/unix/thread.c:49
previously allocated by thread T3 here:
#0 0x7fdac6e177c7 in malloc (/lib64/libasan.so.1+0x577c7)
#1 0x7fdac64a0a29 in MVM_malloc src/core/alloc.h:2
#2 0x7fdac64a17e3 in MVM_fixed_size_alloc src/core/fixedsizealloc.c:136
#3 0x7fdac64a1810 in MVM_fixed_size_alloc_zeroed src/core/fixedsizealloc.c:144
#4 0x7fdac64501eb in allocate_frame src/core/frame.c:306
#5 0x7fdac6451622 in MVM_frame_invoke src/core/frame.c:441
#6 0x7fdac652cfc7 in invoke_handler src/6model/reprs/MVMCode.c:10
#7 0x7fdac1aec4a2 (+0x24a2)
#8 0x7fdac66034c3 in MVM_jit_enter_code src/jit/compile.c:123
#9 0x7fdac643d5eb in MVM_interp_run src/core/interp.c:4804
#10 0x7fdac646c7a3 in start_thread src/core/threads.c:64
#11 0x7fdac6679276 in uv__thread_start 3rdparty/libuv/src/unix/thread.c:49
Thread T3 created by T0 here:
#0 0x7fdac6de3dba in pthread_create (/lib64/libasan.so.1+0x23dba)
#1 0x7fdac66792bf in uv_thread_create 3rdparty/libuv/src/unix/thread.c:66
SUMMARY: AddressSanitizer: heap-use-after-free src/core/interp.c:846 MVM_interp_run
Shadow bytes around the buggy address:
0x0c2c800457f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045800: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045810: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045820: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c2c80045830: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x0c2c80045840: fd fd[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045850: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045860: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045870: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c2c80045880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c2c80045890: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
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 right 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
Contiguous container OOB:fc
ASan internal: fe
==3058==ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment