Last active
July 20, 2021 15:55
-
-
Save dogbert17/3cc911045a857bf78093822612b50a24 to your computer and use it in GitHub Desktop.
Buffer overflow new-disp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dogbert@dogbert-VirtualBox:~/repos/rakudo$ ASAN_OPTIONS="detect_leaks=0" ./rakudo-gdb-m -Ilib t/spec/S32-hash/map.t | |
================================================================================================ | |
This is Rakudo running in the debugger, which often allows the user to generate useful back- | |
traces to debug or report issues in Rakudo, the MoarVM backend or the currently running code. | |
This Rakudo version is 2021.06.87.geceeb.5083 built on MoarVM version 2021.06.281.g.1.db.0.f.3.bb.9, | |
running on linuxmint (20.Ulyana) / linux | |
Type `bt full` to generate a backtrace if applicable, type `q` to quit or `help` for help. | |
------------------------------------------------------------------------------------------------ | |
Reading symbols from /home/dogbert/repos/rakudo/nqp/MoarVM/../../install/bin/moar... | |
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=/home/dogbert/repos/rakudo/rakudo-gdb-m --libpath=/home/dogbert/repos/rakudo --libpath=/home/dogbert/repos/rakudo/blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm -Ilib t/spec/S32-hash/map.t | |
[Thread debugging using libthread_db enabled] | |
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". | |
[New Thread 0x7ffff2bd3700 (LWP 502984)] | |
1..23 | |
ok 1 - .Map on defined Hash produces correct Map | |
ok 2 - .Map on undefined Hash produces Map type object | |
# Subtest: <object|type>.map(Hash) should die | |
1..2 | |
ok 1 - code dies | |
ok 2 - right exception type (Exception) | |
ok 3 - <object|type>.map(Hash) should die | |
ok 4 - Map.Map returns self | |
ok 5 - Map:U.Hash gives Hash type object | |
ok 6 - .Hash on empty Map gives empty Hash | |
ok 7 - Map:D.Hash gives right hash | |
ok 8 - Map.Int gives number of pairs | |
ok 9 - Map{} with non-Str value in lookup stringifies it | |
ok 10 - Map.clone is identity | |
# Subtest: Map.gist shows only the first sorted 100 els | |
1..4 | |
================================================================= | |
==502980==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6180001867ac at pc 0x7ffff75eaf2d bp 0x7fffffffb190 sp 0x7fffffffa938 | |
WRITE of size 4 at 0x6180001867ac thread T0 | |
#0 0x7ffff75eaf2c (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x67f2c) | |
#1 0x7ffff6326142 in memset /usr/include/x86_64-linux-gnu/bits/string_fortified.h:71 | |
#2 0x7ffff6326142 in MVM_callsite_intern src/core/callsite.c:258 | |
#3 0x7ffff65de4da in emit_resume_inits src/disp/program.c:2075 | |
#4 0x7ffff65de4da in process_recording src/disp/program.c:2196 | |
#5 0x7ffff65e0a13 in MVM_disp_program_record_end src/disp/program.c:2372 | |
#6 0x7ffff63e18bf in handle_end_of_dispatch_record src/core/callstack.c:340 | |
#7 0x7ffff63e18bf in MVM_callstack_unwind_dispatch_record src/core/callstack.c:484 | |
#8 0x7ffff65c6991 in run_dispatch src/disp/program.c:467 | |
#9 0x7ffff65e04bb in MVM_disp_program_record_end src/disp/program.c:2315 | |
#10 0x7ffff63e116c in handle_end_of_dispatch_record src/core/callstack.c:340 | |
#11 0x7ffff63e116c in MVM_callstack_unwind_frame src/core/callstack.c:449 | |
#12 0x7ffff63c3818 in remove_one_frame src/core/frame.c:1059 | |
#13 0x7ffff63da839 in MVM_frame_try_return src/core/frame.c:1181 | |
#14 0x7ffff636b3f5 in MVM_interp_run src/core/interp.c:575 | |
#15 0x555555556c3b in main src/main.c:305 | |
#16 0x7ffff5a650b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) | |
#17 0x555555556e4d in _start (/home/dogbert/repos/rakudo/install/bin/moar+0x2e4d) | |
0x6180001867ac is located 0 bytes to the right of 812-byte region [0x618000186480,0x6180001867ac) | |
allocated by thread T0 here: | |
#0 0x7ffff7690bc8 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10dbc8) | |
#1 0x7ffff6416c05 in MVM_malloc src/core/alloc.h:2 | |
#2 0x7ffff6416c05 in MVM_fixed_size_alloc src/core/fixedsizealloc.c:210 | |
#3 0x7ffff6416c05 in MVM_fixed_size_alloc src/core/fixedsizealloc.c:186 | |
#4 0x7ffff6417a0b in MVM_fixed_size_realloc_at_safepoint src/core/fixedsizealloc.c:260 | |
#5 0x7ffff6326119 in MVM_callsite_intern src/core/callsite.c:254 | |
#6 0x7ffff65de4da in emit_resume_inits src/disp/program.c:2075 | |
#7 0x7ffff65de4da in process_recording src/disp/program.c:2196 | |
#8 0x7ffff65e0a13 in MVM_disp_program_record_end src/disp/program.c:2372 | |
#9 0x7ffff63e18bf in handle_end_of_dispatch_record src/core/callstack.c:340 | |
#10 0x7ffff63e18bf in MVM_callstack_unwind_dispatch_record src/core/callstack.c:484 | |
#11 0x7ffff65c6991 in run_dispatch src/disp/program.c:467 | |
#12 0x7ffff65e04bb in MVM_disp_program_record_end src/disp/program.c:2315 | |
#13 0x7ffff63e116c in handle_end_of_dispatch_record src/core/callstack.c:340 | |
#14 0x7ffff63e116c in MVM_callstack_unwind_frame src/core/callstack.c:449 | |
#15 0x7ffff63c3818 in remove_one_frame src/core/frame.c:1059 | |
#16 0x7ffff63da839 in MVM_frame_try_return src/core/frame.c:1181 | |
#17 0x7ffff636b3f5 in MVM_interp_run src/core/interp.c:575 | |
#18 0x555555556c3b in main src/main.c:305 | |
#19 0x7ffff5a650b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) | |
SUMMARY: AddressSanitizer: heap-buffer-overflow (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x67f2c) | |
Shadow bytes around the buggy address: | |
0x0c3080028ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
=>0x0c3080028cf0: 00 00 00 00 00[04]fa fa fa fa fa fa fa fa fa fa | |
0x0c3080028d00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa | |
0x0c3080028d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
0x0c3080028d40: 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 | |
Freed heap region: fd | |
Stack left redzone: f1 | |
Stack mid redzone: f2 | |
Stack right redzone: f3 | |
Stack after return: f5 | |
Stack use after scope: f8 | |
Global redzone: f9 | |
Global init order: f6 | |
Poisoned by user: f7 | |
Container overflow: fc | |
Array cookie: ac | |
Intra object redzone: bb | |
ASan internal: fe | |
Left alloca redzone: ca | |
Right alloca redzone: cb | |
Shadow gap: cc | |
==502980==ABORTING | |
[Thread 0x7ffff589cbc0 (LWP 502980) exited] | |
[Inferior 1 (process 502980) exited with code 01] | |
(gdb) | |
Here's the output from valgrind: | |
dogbert@dogbert-VirtualBox:~/repos/rakudo$ ASAN_OPTIONS="detect_leaks=0" ./rakudo-valgrind-m -Ilib t/spec/S32-hash/map.t | |
================================================================================================ | |
This is Rakudo running in valgrind, a tool for debugging and profiling programs. | |
Running a program in valgrind usually takes *a lot* more time than running it directly, | |
so please be patient. | |
Valgrind options can be added with MVM_VALGRIND_OPTS environment variable. | |
This Rakudo version is 2021.06.87.geceeb.5083 built on MoarVM version 2021.06.281.g.1.db.0.f.3.bb.9, | |
running on linuxmint (20.Ulyana) / linux | |
------------------------------------------------------------------------------------------------ | |
==506496== Memcheck, a memory error detector | |
==506496== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. | |
==506496== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info | |
==506496== Command: /home/dogbert/repos/rakudo/nqp/MoarVM/../../install/bin/moar --execname=/home/dogbert/repos/rakudo/rakudo-valgrind-m --libpath=/home/dogbert/repos/rakudo --libpath=/home/dogbert/repos/rakudo/blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm -Ilib t/spec/S32-hash/map.t | |
==506496== | |
1..23 | |
ok 1 - .Map on defined Hash produces correct Map | |
ok 2 - .Map on undefined Hash produces Map type object | |
# Subtest: <object|type>.map(Hash) should die | |
1..2 | |
ok 1 - code dies | |
ok 2 - right exception type (Exception) | |
ok 3 - <object|type>.map(Hash) should die | |
ok 4 - Map.Map returns self | |
ok 5 - Map:U.Hash gives Hash type object | |
ok 6 - .Hash on empty Map gives empty Hash | |
ok 7 - Map:D.Hash gives right hash | |
ok 8 - Map.Int gives number of pairs | |
ok 9 - Map{} with non-Str value in lookup stringifies it | |
ok 10 - Map.clone is identity | |
# Subtest: Map.gist shows only the first sorted 100 els | |
1..4 | |
==506496== Invalid write of size 1 | |
==506496== at 0x4842909: memset (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4A46CDB: MVM_callsite_intern (callsite.c:258) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46CFD: MVM_callsite_intern (callsite.c:264) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46E37: MVM_callsite_intern (callsite.c:287) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Invalid write of size 4 | |
==506496== at 0x4A46E3C: MVM_callsite_intern (callsite.c:287) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46BAE: MVM_callsite_intern (callsite.c:224) | |
==506496== by 0x4B88AC1: MVM_disp_inline_cache_transition (inline_cache.c:285) | |
==506496== by 0x4B92BD1: process_recording (program.c:2286) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46EA2: MVM_callsite_mark_interns (callsite.c:300) | |
==506496== by 0x4AE0474: MVM_gc_root_add_instance_roots_to_worklist (roots.c:150) | |
==506496== by 0x4AE6333: MVM_gc_collect (collect.c:115) | |
==506496== by 0x4ADA4D9: run_gc (orchestrate.c:443) | |
==506496== by 0x4ADABB3: MVM_gc_enter_from_allocator (orchestrate.c:598) | |
==506496== by 0x4ADB636: MVM_gc_allocate_nursery (allocation.c:37) | |
==506496== by 0x4ADB429: MVM_gc_allocate (allocation.h:18) | |
==506496== by 0x4ADB6C3: MVM_gc_allocate_zeroed (allocation.c:56) | |
==506496== by 0x4ADBA51: MVM_gc_allocate_object (allocation.c:93) | |
==506496== by 0x4B205D9: allocate (P6opaque.c:67) | |
==506496== by 0x4B08A2E: MVM_repr_alloc_init (reprconv.c:17) | |
==506496== by 0x4B0B6E7: MVM_repr_box_str (reprconv.c:672) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
ok 1 - 100 els | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46BAE: MVM_callsite_intern (callsite.c:224) | |
==506496== by 0x4A4724C: MVM_callsite_drop_positional (callsite.c:372) | |
==506496== by 0x4B6AAE2: MVM_capture_drop_arg (MVMCapture.c:287) | |
==506496== by 0x4B8C534: MVM_disp_program_record_capture_drop_arg (program.c:923) | |
==506496== by 0x4B97D4F: dispatcher_drop_arg_impl (syscall.c:90) | |
==506496== by 0x4B94208: MVM_disp_program_run (program.c:2678) | |
==506496== by 0x4B8831E: dispatch_monomorphic (inline_cache.c:104) | |
==506496== by 0x4A840A5: MVM_interp_run (interp.c:5875) | |
==506496== by 0x4C2E984: MVM_vm_run_file (moar.c:513) | |
==506496== by 0x109C86: main (main.c:305) | |
==506496== Address 0x6f2cc9c is 0 bytes after a block of size 812 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Conditional jump or move depends on uninitialised value(s) | |
==506496== at 0x4A46BB3: MVM_callsite_intern (callsite.c:224) | |
==506496== by 0x4B8E51D: add_program_constant_callsite (program.c:1458) | |
==506496== by 0x4B928C9: process_recording (program.c:2244) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== | |
==506496== Conditional jump or move depends on uninitialised value(s) | |
==506496== at 0x4A46D0A: MVM_callsite_intern (callsite.c:265) | |
==506496== by 0x4B8E51D: add_program_constant_callsite (program.c:1458) | |
==506496== by 0x4B928C9: process_recording (program.c:2244) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== | |
==506496== Use of uninitialised value of size 8 | |
==506496== at 0x4A46E12: MVM_callsite_intern (callsite.c:283) | |
==506496== by 0x4B8E51D: add_program_constant_callsite (program.c:1458) | |
==506496== by 0x4B928C9: process_recording (program.c:2244) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46BAE: MVM_callsite_intern (callsite.c:224) | |
==506496== by 0x4B88CBB: MVM_disp_inline_cache_transition (inline_cache.c:316) | |
==506496== by 0x4B92BD1: process_recording (program.c:2286) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x6c58f64 is 0 bytes after a block of size 820 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
==506496== Conditional jump or move depends on uninitialised value(s) | |
==506496== at 0x4A46EFB: MVM_callsite_mark_interns (callsite.c:303) | |
==506496== by 0x4AE0474: MVM_gc_root_add_instance_roots_to_worklist (roots.c:150) | |
==506496== by 0x4AE6333: MVM_gc_collect (collect.c:115) | |
==506496== by 0x4ADA4D9: run_gc (orchestrate.c:443) | |
==506496== by 0x4ADABB3: MVM_gc_enter_from_allocator (orchestrate.c:598) | |
==506496== by 0x4ADB636: MVM_gc_allocate_nursery (allocation.c:37) | |
==506496== by 0x4ADB429: MVM_gc_allocate (allocation.h:18) | |
==506496== by 0x4ADB6C3: MVM_gc_allocate_zeroed (allocation.c:56) | |
==506496== by 0x4ADBA51: MVM_gc_allocate_object (allocation.c:93) | |
==506496== by 0x4A4E296: MVM_args_slurpy_named (args.c:1166) | |
==506496== by 0x4A5D498: MVM_interp_run (interp.c:1281) | |
==506496== by 0x4C2E984: MVM_vm_run_file (moar.c:513) | |
==506496== | |
ok 2 - 101 els | |
==506496== Invalid read of size 4 | |
==506496== at 0x4A46BAE: MVM_callsite_intern (callsite.c:224) | |
==506496== by 0x4B88F93: MVM_disp_inline_cache_transition (inline_cache.c:360) | |
==506496== by 0x4B92BD1: process_recording (program.c:2286) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4A8E: MVM_callstack_unwind_frame (callstack.c:449) | |
==506496== by 0x4A9EB90: remove_one_frame (frame.c:1059) | |
==506496== by 0x4A9F14E: MVM_frame_try_return (frame.c:1181) | |
==506496== Address 0x662cd6c is 0 bytes after a block of size 828 alloc'd | |
==506496== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) | |
==506496== by 0x4ABFF1D: MVM_malloc (alloc.h:2) | |
==506496== by 0x4AC08ED: MVM_fixed_size_alloc (fixedsizealloc.c:210) | |
==506496== by 0x4AC0A6B: MVM_fixed_size_realloc_at_safepoint (fixedsizealloc.c:260) | |
==506496== by 0x4A46CA4: MVM_callsite_intern (callsite.c:254) | |
==506496== by 0x4B91A79: emit_resume_inits (program.c:2075) | |
==506496== by 0x4B9255E: process_recording (program.c:2196) | |
==506496== by 0x4B92F9E: MVM_disp_program_record_end (program.c:2372) | |
==506496== by 0x4AA448D: handle_end_of_dispatch_record (callstack.c:340) | |
==506496== by 0x4AA4C2C: MVM_callstack_unwind_dispatch_record (callstack.c:484) | |
==506496== by 0x4B8A712: run_dispatch (program.c:467) | |
==506496== by 0x4B92CF2: MVM_disp_program_record_end (program.c:2315) | |
==506496== | |
ok 3 - 102 els | |
ok 4 - 1000 els | |
ok 11 - Map.gist shows only the first sorted 100 els | |
# Subtest: Cannot bind at key of immutable Map | |
1..2 | |
ok 1 - code dies | |
ok 2 - right exception type (X::Bind) | |
ok 12 - Cannot bind at key of immutable Map | |
# Subtest: Cannot bind at key of immutable Map, Scalar value | |
1..2 | |
ok 1 - code dies | |
ok 2 - right exception type (X::Bind) | |
ok 13 - Cannot bind at key of immutable Map, Scalar value | |
ok 14 - cannot initialize a Map for the second time | |
ok 15 - did we get the pairs handled ok | |
ok 16 - Map does not introduce bogus Scalar containers | |
ok 17 - did we change the hash inside the map | |
ok 18 - did the .WHICH stay unchanged | |
ok 19 - a hash value is containerized | |
ok 20 - Map coercion deconts hash value | |
ok 21 - array attribute initializer from Hash coerced to Map | |
ok 22 - cannot assign to existing key | |
ok 23 - cannot assign to non-existing key | |
==506496== | |
==506496== HEAP SUMMARY: | |
==506496== in use at exit: 74,181,825 bytes in 289,413 blocks | |
==506496== total heap usage: 883,543 allocs, 594,130 frees, 309,484,885 bytes allocated | |
==506496== | |
==506496== LEAK SUMMARY: | |
==506496== definitely lost: 808 bytes in 10 blocks | |
==506496== indirectly lost: 1,088 bytes in 12 blocks | |
==506496== possibly lost: 1,920,776 bytes in 670 blocks | |
==506496== still reachable: 72,259,153 bytes in 288,721 blocks | |
==506496== suppressed: 0 bytes in 0 blocks | |
==506496== Rerun with --leak-check=full to see details of leaked memory | |
==506496== | |
==506496== Use --track-origins=yes to see where uninitialised values come from | |
==506496== For lists of detected and suppressed errors, rerun with: -s | |
==506496== ERROR SUMMARY: 9675 errors from 13 contexts (suppressed: 0 from 0) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment