Giter Site home page Giter Site logo

targets's People

Contributors

alanhdu avatar alex avatar bors-ng[bot] avatar bors[bot] avatar divergentdave avatar dtolnay avatar frewsxcv avatar killercup avatar manishearth avatar newpavlov avatar notriddle avatar paulgrandperrin avatar shnatsel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

targets's Issues

Extend `cargo run -- continuous` optionally to output HTML with stats

It'd be very cool if there was a flag that would output HTML after each fuzzing attempt with stats about all the projects that have been fuzzed by cargo run -- continuous. Then it would be possible to spin up a VPS, setup nginx, run cargo run -- continuous in the background, and monitor fuzzing from a web browser โœจ

I got excited by this idea and bought http://fuzz.rs ๐Ÿ˜„

specify license

probs gonna CC0 to keep things simple and allow people to freely copy the targets

pulldown-cmark target finds a segv and a buffer overflow

corey@debian:~/dev/targets/pulldown-cmark$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `/home/corey/dev/targets/target/debug/read_markdown`
INFO: Seed: 1439773339
INFO: Loaded 0 modules (0 guards):
INFO: -max_len is not provided, using 64
INFO: A corpus is not provided, starting from an empty corpus
#0      READ units: 1
#1      INITED cov: 653 corp: 1/1b exec/s: 0 rss: 21Mb
#2      NEW    cov: 654 corp: 2/3b exec/s: 0 rss: 21Mb L: 2 MS: 1 InsertByte-
ASAN:DEADLYSIGNAL
=================================================================
==29393==ERROR: AddressSanitizer: SEGV on unknown address 0x1000898e9e0f (pc 0x7f44e46c48ba bp 0x7fff4c78f1f0 sp 0x7fff4c78f060 T0)
==29393==The signal is caused by a READ memory access.
    #0 0x7f44e46c48b9  (/home/corey/dev/targets/target/debug/read_markdown+0x2968b9)
    #1 0x7f44e471c0b8  (/home/corey/dev/targets/target/debug/read_markdown+0x2ee0b8)
    #2 0x7f44e46da1b5  (/home/corey/dev/targets/target/debug/read_markdown+0x2ac1b5)
    #3 0x7f44e46d8a84  (/home/corey/dev/targets/target/debug/read_markdown+0x2aaa84)
    #4 0x7f44e4710e48  (/home/corey/dev/targets/target/debug/read_markdown+0x2e2e48)
    #5 0x7f44e46cdf80  (/home/corey/dev/targets/target/debug/read_markdown+0x29ff80)
    #6 0x7f44e46cd523  (/home/corey/dev/targets/target/debug/read_markdown+0x29f523)
    #7 0x7f44e44b37bf  (/home/corey/dev/targets/target/debug/read_markdown+0x857bf)
    #8 0x7f44e44c998a  (/home/corey/dev/targets/target/debug/read_markdown+0x9b98a)
    #9 0x7f44e44c7a0d  (/home/corey/dev/targets/target/debug/read_markdown+0x99a0d)
    #10 0x7f44e475203b  (/home/corey/dev/targets/target/debug/read_markdown+0x32403b)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/corey/dev/targets/target/debug/read_markdown+0x2968b9)
==29393==ABORTING
MS: 5 InsertByte-EraseBytes-InsertRepeatedBytes-ChangeBit-CrossOver-; base unit: adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
artifact_prefix='./'; Test unit written to ./crash-74a1d6c6c5d57df044cdbac5c4c0798a000f67b7
Base64: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAA==

Failing to build libfuzzer-sys with sanitizers

Whenever I run ./run-fuzzer.sh, I get a build failure compiling libfuzzer-sys:

 Compiling libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)
error: failed to run custom build command for `libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)`
process didn't exit successfully: `/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-b832cf5e294bfa00/build-script-build` (exit code: 1)
--- stderr
==17280==LeakSanitizer has encountered a fatal error.
==17280==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==17280==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
Full build log with LSAN_OPTIONS=verbosity=1:log_threads=1
   Compiling libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)
error: failed to run custom build command for `libfuzzer-sys v0.1.0 (https://github.com/rust-fuzz/libfuzzer-sys.git#bcaa8e1c)`
process didn't exit successfully: `/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-b832cf5e294bfa00/build-script-build` (exit code: 1)
--- stdout
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTraceState.o" "-c" "llvm/lib/Fuzzer/FuzzerTraceState.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtil.o" "-c" "llvm/lib/Fuzzer/FuzzerUtil.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerCrossOver.o" "-c" "llvm/lib/Fuzzer/FuzzerCrossOver.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilLinux.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilLinux.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerShmemWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerShmemPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIO.o" "-c" "llvm/lib/Fuzzer/FuzzerIO.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMutate.o" "-c" "llvm/lib/Fuzzer/FuzzerMutate.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilDarwin.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilDarwin.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerIOWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOPosix.o" "-c" "llvm/lib/Fuzzer/FuzzerIOPosix.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerLoop.o" "-c" "llvm/lib/Fuzzer/FuzzerLoop.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerDriver.o" "-c" "llvm/lib/Fuzzer/FuzzerDriver.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerSHA1.o" "-c" "llvm/lib/Fuzzer/FuzzerSHA1.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.o" "-c" "llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilWindows.o" "-c" "llvm/lib/Fuzzer/FuzzerUtilWindows.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMerge.o" "-c" "llvm/lib/Fuzzer/FuzzerMerge.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTracePC.o" "-c" "llvm/lib/Fuzzer/FuzzerTracePC.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
OPT_LEVEL = Some("0")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXX_x86_64-unknown-linux-gnu = None
CXX_x86_64_unknown_linux_gnu = None
HOST_CXX = None
CXX = None
HOST = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
CXXFLAGS_x86_64-unknown-linux-gnu = None
CXXFLAGS_x86_64_unknown_linux_gnu = None
HOST_CXXFLAGS = None
CXXFLAGS = None
PROFILE = Some("debug")
running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-m64" "-std=c++11" "-fno-omit-frame-pointer" "-o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMain.o" "-c" "llvm/lib/Fuzzer/FuzzerMain.cpp"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
HOST = Some("x86_64-unknown-linux-gnu")
AR_x86_64-unknown-linux-gnu = None
AR_x86_64_unknown_linux_gnu = None
HOST_AR = None
AR = None
TARGET = Some("x86_64-unknown-linux-gnu")
TARGET = Some("x86_64-unknown-linux-gnu")
running: "ar" "crs" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/libfuzzer.a" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTraceState.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtil.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerCrossOver.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsymWin.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilLinux.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerShmemPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIO.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMutate.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilDarwin.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeakAlias.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerIOPosix.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerLoop.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerDriver.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerSHA1.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsWeak.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerExtFunctionsDlsym.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerUtilWindows.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMerge.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerTracePC.o" "/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out/llvm/lib/Fuzzer/FuzzerMain.o"
exit code: 0
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=static=fuzzer
cargo:rustc-link-search=native=/home/alan/workspace/fuzz/targets/target/debug/build/libfuzzer-sys-c0cf010c1a9d8732/out
TARGET = Some("x86_64-unknown-linux-gnu")
cargo:rustc-link-lib=stdc++

--- stderr
==17280==AddressSanitizer: failed to intercept '__isoc99_printf'
==17280==AddressSanitizer: failed to intercept '__isoc99_sprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_snprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_fprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vsprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vsnprintf'
==17280==AddressSanitizer: failed to intercept '__isoc99_vfprintf'
==17280==AddressSanitizer: failed to intercept '__cxa_throw'
==17280==AddressSanitizer: libc interceptors initialized
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem    ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap  ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow  ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem     ||
MemToShadow(shadow): 0x00008fff7000 0x000091ff6dff 0x004091ff6e00 0x02008fff6fff
redzone=16
max_redzone=2048
quarantine_size_mb=256M
thread_local_quarantine_size_kb=1024K
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 0x7fff8000
==17280==Installed the sigaction for signal 11
==17280==Installed the sigaction for signal 7
==17280==Installed the sigaction for signal 8
==17280==T0: stack [0x7ffd5c1aa000,0x7ffd5c9aa000) size 0x800000; local=0x7ffd5c9a7fe0
==17280==LeakSanitizer: Dynamic linker not found. TLS will not be handled correctly.
==17280==AddressSanitizer Init done
==17280==T1: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T1 TSDDtor
==17280==T1 exited
==17280==T2: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T2 TSDDtor
==17280==T2 exited
==17280==T3: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T3 TSDDtor
==17280==T3 exited
==17280==T4: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T4 TSDDtor
==17280==T4 exited
==17280==T5: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T5 TSDDtor
==17280==T5 exited
==17280==T6: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T6 TSDDtor
==17280==T6 exited
==17280==T7: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T7 TSDDtor
==17280==T7 exited
==17280==T8: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T8 TSDDtor
==17280==T8 exited
==17280==T9: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T9 TSDDtor
==17280==T9 exited
==17280==T10: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T10 TSDDtor
==17280==T10 exited
==17280==T11: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T11 TSDDtor
==17280==T11 exited
==17280==T12: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T12 TSDDtor
==17280==T12 exited
==17280==T13: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T13 TSDDtor
==17280==T13 exited
==17280==T14: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T14 TSDDtor
==17280==T14 exited
==17280==T15: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T15 TSDDtor
==17280==T15 exited
==17280==T16: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T16 TSDDtor
==17280==T16 exited
==17280==T17: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T17 TSDDtor
==17280==T17 exited
==17280==T18: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T18 TSDDtor
==17280==T18 exited
==17280==T19: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T19 TSDDtor
==17280==T19 exited
==17280==T20: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T20 TSDDtor
==17280==T20 exited
==17280==T21: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T21 TSDDtor
==17280==T21 exited
==17280==T22: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T22 TSDDtor
==17280==T22 exited
==17280==T23: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T23 TSDDtor
==17280==T23 exited
==17280==T24: stack [0x7f580cafe000,0x7f580ccfde80) size 0x1ffe80; local=0x7f580ccfdd90
==17280==T24 TSDDtor
==17280==T24 exited
==17377==Could not attach to thread 17280 (errno 1).
==17377==Failed suspending threads.
==17280==LeakSanitizer has encountered a fatal error.
==17280==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==17280==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)

This is with Ubuntu 16.04 on the latest Rust nightly (rustc 1.19.0-nightly (d47cf08d5 2017-05-28)).

Fuzz params: max-len, seeds, etc.

Before I forget, after reading this and that while letting the fuzzer run without params, I noticed that it might be a good idea to set some parameters. E.g., by default, libfuzzer sets max_len to 64 bytes, which is not that much when fuzzing a de-/encoder.

We can easily support passing more args by adjusting the run-fuzzer script. The binaries we create here take the same args as the libfuzzer docs describe.

I ended up with the following, which also includes -C opt-level=3 -C debug-assertions=on:

diff --git a/run-fuzzer.sh b/run-fuzzer.sh
index ce76eac..8a39b86 100755
--- a/run-fuzzer.sh
+++ b/run-fuzzer.sh
@@ -1,17 +1,18 @@
-#!/bin/sh
+#!/bin/bash
 
 set -ex
 
-if [ "$#" -ne 2 ]; then
+if [ "$#" -lt 2 ]; then
-     echo "Usage: run-fuzzer.sh <crate> <target>" 1>&2
+     echo "Usage: run-fuzzer.sh <crate> <target> [<options...>]" 1>&2
     exit 1
 fi
 
 # Specify RUSTFLAGS so the target crate is compiled with sanitization
-export RUSTFLAGS="-Cpasses=sancov -Cllvm-args=-sanitizer-coverage-level=3 -Zsanitizer=address -Cpanic=abort"
+export RUSTFLAGS="-C passes=sancov -C llvm-args=-sanitizer-coverage-level=3 -Z sanitizer=address -C panic=abort -C opt-level=3 -C debug-assertions=on -C debuginfo=2"
 
 # Change directory to the crate we want to fuzz
 cd "$1"
 
 # Run the fuzzer with that target
-cargo run --bin "$2"
+cargo run --bin "$2" -- ${@:3}
+

cargo build fails

The build fails for me with:

    Updating git repository `https://github.com/carols10cents/zopfli`
error: no matching package named `sha1` found (required by `crypto-hashes-targets`)
location searched: https://github.com/RustCrypto/hashes

CC0 licensing ramifications

Writing fuzzer targets should be straight forward, releasing them under CC0 is nice. But what if you want to provide corpus data from an existing MIT/BSD/Apache project? Say you want to fuzz servo/rust-url, you could build a URL corpus from the test data of Servo, Chromium, WebKit ... but can you actually push such a corpus to this repository under the current licensing?

Decide crate directory conventions and repository organization

What should the layout of this repository be?

So far, it's been:

/<published crate name>/{Cargo.toml, <targets>.rs}

With the exception of the crypto-hashes directory which is just a collection of different crates. What if a crate isn't published?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.