Skip to content

Instantly share code, notes, and snippets.

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/db210a75ab12862c46c19233a0579fd9 to your computer and use it in GitHub Desktop.
Save dogbert17/db210a75ab12862c46c19233a0579fd9 to your computer and use it in GitHub Desktop.
ASAN complains
dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6 t/spec/S32-io/io-cathandle.t
1..28
1..4
ok 1 - default
ok 2 - changed
ok 3 - attributes get set on next handles
ok 4 - can set .nl-in to a string
ok 1 - chomp method and nl-in method
[snip]
ok 3 - 3
ok 4 - 4
ok 25 - Str method
1..5
1..4
ok 1 - no args
ok 2 - size 2
ok 3 - size 5
ok 4 - size 1000
ok 1 - binary cat
1..4
ok 1 - no args
not ok 2 - size 2
# Failed test 'size 2'
# at t/spec/S32-io/io-cathandle.t line 730
# expected: $["fo", "♥b", "♥r", "me", "ow"]
# got: $["fo♥", "b♥", "rm", "eo", "w"]
ok 3 - size 5
ok 4 - size 1000
# Looks like you failed 1 test of 4
not ok 2 - non-binary cat, utf8
# Failed test 'non-binary cat, utf8'
# at t/spec/S32-io/io-cathandle.t line 727
1..4
not ok 1 - no args
# Failed test 'no args'
# at t/spec/S32-io/io-cathandle.t line 741
# expected: $["􏿽xC8􏿽xC8􏿽xC8􏿽xC8*F"]
# got: $["􏿽xC8􏿽xC8􏿽xC8􏿽xC8*F"]
=================================================================
==3550== ERROR: AddressSanitizer: heap-buffer-overflow on address 0xa2b2093b at pc 0xb59e36b6 bp 0xbfedd058 sp 0xbfedd04c
READ of size 1 at 0xa2b2093b thread T0
#0 0xb59e36b5 in get_all_in_buffer /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/decode_stream.c:451
#1 0xb59e3a43 in MVM_string_decodestream_get_all /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/decode_stream.c:474
#2 0xb59118e0 in MVM_decoder_take_all_chars /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/Decoder.c:233
#3 0xb5781322 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:5006
#4 0xb5a642f5 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:318
#5 0x804944c in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:246
#6 0xb541aaf2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
#7 0x8048b80 in _start (/home/dogbert/repos/rakudo/install/bin/moar+0x8048b80)
0xa2b2093b is located 3 bytes to the right of 8-byte region [0xa2b20930,0xa2b20938)
allocated by thread T0 here:
#0 0xb61e3854 (/usr/lib/i386-linux-gnu/libasan.so.0+0x16854)
#1 0xb59ef576 in MVM_malloc /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/alloc.h:2
#2 0xb59f3e4e in MVM_string_utf8_c8_decodestream /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/utf8_c8.c:466
#3 0xb59e0eec in run_decode /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/decode_stream.c:127
#4 0xb59e1e95 in MVM_string_decodestream_get_chars /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/decode_stream.c:241
#5 0xb591185f in MVM_decoder_take_chars /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/Decoder.c:222
#6 0xb5781111 in MVM_interp_run /home/dogbert/repos/rakudo/nqp/MoarVM/src/core/interp.c:4998
#7 0xb5a642f5 in MVM_vm_run_file /home/dogbert/repos/rakudo/nqp/MoarVM/src/moar.c:318
#8 0x804944c in main /home/dogbert/repos/rakudo/nqp/MoarVM/src/main.c:246
#9 0xb541aaf2 (/lib/i386-linux-gnu/libc.so.6+0x19af2)
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/dogbert/repos/rakudo/nqp/MoarVM/src/strings/decode_stream.c:451 get_all_in_buffer
Shadow bytes around the buggy address:
0x345640d0: fa fa fa fa fa fa 04 fa fa fa 00 fa fa fa 01 fa
0x345640e0: fa fa 00 00 fa fa fa fa fa fa fa fa fa fa 00 00
0x345640f0: fa fa 00 00 fa fa 00 fa fa fa fd fa fa fa fa fa
0x34564100: fa fa 00 04 fa fa fa fa fa fa fa fa fa fa fa fa
0x34564110: fa fa fd fd fa fa fd fd fa fa 00 04 fa fa fa fa
=>0x34564120: fa fa fa fa fa fa 00[fa]fa fa 00 04 fa fa fa fa
0x34564130: fa fa fa fa fa fa fa fa fa fa fd fd fa fa 00 00
0x34564140: fa fa 00 00 fa fa 00 00 fa fa fa fa fa fa fd fa
0x34564150: fa fa fa fa fa fa 00 00 fa fa fa fa fa fa 00 04
0x34564160: fa fa fa fa fa fa fa fa fa fa fa fa fa fa 00 04
0x34564170: fa fa 01 fa fa fa fa fa fa fa fa fa fa fa fa fa
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
==3550== ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment