$ ./fuzz_me_fuzzer
INFO: Loaded 2 modules (17709 inline 8-bit counters): 17702 [0x7fc322ca33f0, 0x7fc322ca7916), 7 [0x55ea99033908, 0x55ea9903390f),
INFO: Loaded 2 PC tables (17709 PCs): 17702 [0x7fc322ca7918,0x7fc322cecb78), 7 [0x55ea99033910,0x55ea99033980),
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
INFO: A corpus is not provided, starting from an empty corpus
#2 INITED cov: 1 ft: 1 corp: 1/1b exec/s: 0 rss: 28Mb
#524288 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 174762 rss: 405Mb
#1048576 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 209715 rss: 592Mb
#2097152 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 190650 rss: 592Mb
#4194304 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 182361 rss: 592Mb
#8388608 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 178481 rss: 592Mb
#16777216 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 178481 rss: 592Mb
#33554432 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 178481 rss: 592Mb
#67108864 pulse cov: 1 ft: 1 corp: 1/1b lim: 4096 exec/s: 177536 rss: 592Mb
^C==108679== libFuzzer: run interrupted; exiting
$ ./a.out
INFO: Seed: 4200740109
INFO: Loaded 1 modules (7 inline 8-bit counters): 7 [0x7a6e80, 0x7a6e87),
INFO: Loaded 1 PC tables (7 PCs): 7 [0x56f7c0,0x56f830),
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
INFO: A corpus is not provided, starting from an empty corpus
#2 INITED cov: 3 ft: 4 corp: 1/1b exec/s: 0 rss: 27Mb
#7 NEW cov: 4 ft: 5 corp: 2/5b lim: 4 exec/s: 0 rss: 27Mb L: 4/4 MS: 5 InsertByte-ShuffleBytes-EraseBytes-CopyPart-CrossOver-
#27 REDUCE cov: 4 ft: 5 corp: 2/4b lim: 4 exec/s: 0 rss: 27Mb L: 3/3 MS: 5 CMP-ChangeByte-EraseBytes-ChangeBit-CopyPart- DE: "\xff\xff\xff\xff"-
#1655 REDUCE cov: 5 ft: 6 corp: 3/8b lim: 17 exec/s: 0 rss: 27Mb L: 4/4 MS: 3 InsertByte-PersAutoDict-CMP- DE: "\xff\xff\xff\xff"-"F\x00"-
#1694 REDUCE cov: 5 ft: 6 corp: 3/7b lim: 17 exec/s: 0 rss: 27Mb L: 3/3 MS: 4 ChangeByte-InsertByte-EraseBytes-EraseBytes-
#5396 REDUCE cov: 6 ft: 7 corp: 4/10b lim: 53 exec/s: 0 rss: 27Mb L: 3/3 MS: 2 EraseBytes-InsertByte-
#9008 NEW cov: 7 ft: 8 corp: 5/14b lim: 86 exec/s: 0 rss: 28Mb L: 4/4 MS: 2 InsertByte-ChangeByte-
=================================================================
==108724==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000033453 at pc 0x000000551313 bp 0x7ffdb0c47400 sp 0x7ffdb0c473f8
READ of size 1 at 0x602000033453 thread T0
#0 0x551312 in FuzzMe(unsigned char const*, unsigned long) /home/destrudo/Desktop/fuzzing/fuzzing/tutorial/libFuzzer/fuzz_me.cc:9:7
#1 0x5513b4 in LLVMFuzzerTestOneInput /home/destrudo/Desktop/fuzzing/fuzzing/tutorial/libFuzzer/fuzz_me.cc:13:3
#2 0x459411 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:553:15
#3 0x458c55 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:469:3
#4 0x45aef7 in fuzzer::Fuzzer::MutateAndTestOne() /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:695:19
#5 0x45bc15 in fuzzer::Fuzzer::Loop(std::Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:831:5
#6 0x4499d8 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:825:6
#7 0x472e42 in main /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
#8 0x7f570ea64bf6 in __libc_start_main /build/glibc-S7xCS9/glibc-2.27/csu/../csu/libc-start.c:310
#9 0x41db69 in _start (/home/destrudo/Desktop/fuzzing/a.out+0x41db69)
0x602000033453 is located 0 bytes to the right of 3-byte region [0x602000033450,0x602000033453)
allocated by thread T0 here:
#0 0x51f08d in malloc /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:145:3
#1 0x432247 in operator new(unsigned long) (/home/destrudo/Desktop/fuzzing/a.out+0x432247)
#2 0x458c55 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool*) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:469:3
#3 0x45aef7 in fuzzer::Fuzzer::MutateAndTestOne() /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:695:19
#4 0x45bc15 in fuzzer::Fuzzer::Loop(std::Fuzzer::vector<fuzzer::SizedFile, fuzzer::fuzzer_allocator<fuzzer::SizedFile> >&) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:831:5
#5 0x4499d8 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:825:6
#6 0x472e42 in main /local/mnt/workspace/bcain_clang_bcain-ubuntu_23113/llvm/utils/release/final/llvm.src/projects/compiler-rt/lib/fuzzer/FuzzerMain.cpp:19:10
#7 0x7f570ea64bf6 in __libc_start_main /build/glibc-S7xCS9/glibc-2.27/csu/../csu/libc-start.c:310
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/destrudo/Desktop/fuzzing/fuzzing/tutorial/libFuzzer/fuzz_me.cc:9:7 in FuzzMe(unsigned char const*, unsigned long)
Shadow bytes around the buggy address:
0x0c047fffe630: fa fa fd fd fa fa fd fd fa fa fd fd fa fa fd fd
0x0c047fffe640: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
0x0c047fffe650: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
0x0c047fffe660: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
0x0c047fffe670: fa fa fd fa fa fa fd fa fa fa fd fa fa fa fd fa
=>0x0c047fffe680: fa fa fd fd fa fa fd fd fa fa[03]fa fa fa fa fa
0x0c047fffe690: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffe6a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffe6b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffe6c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c047fffe6d0: fa fa fa 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
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
==108724==ABORTING
MS: 1 EraseBytes-; base unit: b12a5fb022bfa156688cbf4bd378a79199838125
0x46,0x55,0x5a,
FUZ
artifact_prefix='./'; Test unit written to ./crash-0eb8e4ed029b774d80f2b66408203801cb982a60
Base64: RlVa