rust-fuzz / honggfuzz-rs

Fuzz your Rust code with Google-developed Honggfuzz !
https://crates.io/crates/honggfuzz
Apache License 2.0
448 stars 40 forks source link

Failed to run custom build command on FreeBSD #86

Closed ryanavella closed 3 months ago

ryanavella commented 9 months ago

I hope I'm using this tool right. I followed the instructions as best I could on FreeBSD, though the dependencies listed for Linux don't all have the same names so I can't be sure I installed all of the correct packages.

Command

$ cargo hfuzz run mre
/usr/local/bin/ld.gold
   Compiling semver v1.0.20
   Compiling honggfuzz v0.5.55
   Compiling lazy_static v1.4.0
   Compiling arbitrary v1.3.2
error: failed to run custom build command for `honggfuzz v0.5.55`

Caused by:
  process didn't exit successfully: `/tmp/mre/hfuzz_target/release/build/honggfuzz-58913838721237ff/build-script-build` (exit status: 101)
  --- stderr
  thread 'main' panicked at $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/honggfuzz-0.5.55/build.rs:40:10:
  failed to run "make -C honggfuzz clean": Os { code: 2, kind: NotFound, message: "No such file or directory" }
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
Click here for RUST_BACKTRACE=full ``` $ RUST_BACKTRACE=full cargo hfuzz run mre /usr/local/bin/ld.gold Compiling honggfuzz v0.5.55 Compiling rustc_version v0.4.0 error: failed to run custom build command for `honggfuzz v0.5.55` note: To improve backtraces for build dependencies, set the CARGO_PROFILE_RELEASE_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. Caused by: process didn't exit successfully: `/tmp/mre/hfuzz_target/release/build/honggfuzz-a9e34a03b3af2dd5/build-script-build` (exit status: 101) --- stderr thread 'main' panicked at $HOME/.cargo/registry/src/index.crates.io-6f17d22bba15001f/honggfuzz-0.5.55/build.rs:40:10: failed to run "make -C honggfuzz clean": Os { code: 2, kind: NotFound, message: "No such file or directory" } stack backtrace: 0: 0x2714a2b503ac - std::backtrace_rs::backtrace::libunwind::trace::h227f5e62bf94ac45 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 1: 0x2714a2b503ac - std::backtrace_rs::backtrace::trace_unsynchronized::h7da3bf221bb25a09 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x2714a2b503ac - std::sys_common::backtrace::_print_fmt::h0a4842961f78b152 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/sys_common/backtrace.rs:67:5 3: 0x2714a2b503ac - ::fmt::h8e328eaffb045fb1 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/sys_common/backtrace.rs:44:22 4: 0x2714a2b7395c - core::fmt::rt::Argument::fmt::he393ddbce52f0eff at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/fmt/rt.rs:138:9 5: 0x2714a2b7395c - core::fmt::write::hc38cbbcb851d00ab at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/fmt/mod.rs:1114:21 6: 0x2714a2b4da5e - std::io::Write::write_fmt::h2f30843536039d94 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/io/mod.rs:1763:15 7: 0x2714a2b50184 - std::sys_common::backtrace::_print::he4e7414ad52cd2e8 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/sys_common/backtrace.rs:47:5 8: 0x2714a2b50184 - std::sys_common::backtrace::print::h5eaa9f53ed14896f at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/sys_common/backtrace.rs:34:9 9: 0x2714a2b515c3 - std::panicking::default_hook::{{closure}}::heb333e583b466c51 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:272:22 10: 0x2714a2b511ea - std::panicking::default_hook::he3bf93b45f0c8bd1 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:292:9 11: 0x2714a2b51d0d - std::panicking::rust_panic_with_hook::h6af3b63daf6de27e at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:731:13 12: 0x2714a2b51b11 - std::panicking::begin_panic_handler::{{closure}}::hf3b50bac472dc16f at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:609:13 13: 0x2714a2b508d6 - std::sys_common::backtrace::__rust_end_short_backtrace::ha47741bb9710fa20 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/sys_common/backtrace.rs:170:18 14: 0x2714a2b51862 - rust_begin_unwind at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5 15: 0x2714a2b72ac5 - core::panicking::panic_fmt::h66f296b00047aa1a at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14 16: 0x2714a2b72f23 - core::result::unwrap_failed::h202f1f68601af9aa at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/result.rs:1652:5 17: 0x2714a2b2a61c - core::result::Result::expect::hbeaf8084282bbd8e 18: 0x2714a2b2db33 - build_script_build::main::h8d8ad70cbb5b0a8e 19: 0x2714a2b2c173 - core::ops::function::FnOnce::call_once::hbcfa998c06284903 20: 0x2714a2b29846 - std::sys_common::backtrace::__rust_begin_short_backtrace::h6e0688f9eff6d1d5 21: 0x2714a2b29d39 - std::rt::lang_start::{{closure}}::hdf8f0a5b50c15c52 22: 0x2714a2b4a49d - core::ops::function::impls:: for &F>::call_once::h8aadaf873acc2c72 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:284:13 23: 0x2714a2b4a49d - std::panicking::try::do_call::h7bb56876f347c565 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40 24: 0x2714a2b4a49d - std::panicking::try::h4395597ca10fe0aa at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19 25: 0x2714a2b4a49d - std::panic::catch_unwind::hfa68bfbf98842f18 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14 26: 0x2714a2b4a49d - std::rt::lang_start_internal::{{closure}}::h9f7924da836d3a43 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/rt.rs:148:48 27: 0x2714a2b4a49d - std::panicking::try::do_call::h8774a1b80793a52e at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40 28: 0x2714a2b4a49d - std::panicking::try::hfa967256f930e851 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19 29: 0x2714a2b4a49d - std::panic::catch_unwind::hd6154a51f87e940a at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14 30: 0x2714a2b4a49d - std::rt::lang_start_internal::h7670a540de2143b7 at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/rt.rs:148:20 31: 0x2714a2b29d17 - std::rt::lang_start::h95e510629df386b2 32: 0x2714a2b2ec35 - main 33: 0x271cc570dafa - __libc_start1 34: 0x2714a2b297bd - _start at /usr/src/lib/csu/amd64/crt1_s.S:83 warning: build failed, waiting for other jobs to finish... ```

Files

Hope it's obvious this is a MRE, and not my actual fuzzing code.

Cargo.toml

[package]
name = "mre"
version = "0.1.0"
edition = "2021"

[dependencies]
honggfuzz = "0.5.55"

main.rs

fn main() {}

Meta

rustc --version --verbose:

rustc 1.74.0 (79e9716c9 2023-11-13)
binary: rustc
commit-hash: 79e9716c980570bfd1f666e3b16ac583f0168962
commit-date: 2023-11-13
host: x86_64-unknown-freebsd
release: 1.74.0
LLVM version: 17.0.4

cargo --version --verbose

cargo 1.74.0 (ecb9851af 2023-10-18)
release: 1.74.0
commit-hash: ecb9851afd3095e988daaa35a48bc7f3cb748e04
commit-date: 2023-10-18
host: x86_64-unknown-freebsd
libgit2: 1.7.1 (sys:0.18.0 vendored)
libcurl: 8.4.0-DEV (sys:0.4.68+curl-8.4.0 vendored ssl:OpenSSL/1.1.1u)
ssl: OpenSSL 1.1.1u  30 May 2023
os: FreeBSD 14.0-RELEASE [64-bit]

uname -imrs

FreeBSD 14.0-RELEASE amd64 GENERIC

cargo hfuzz version

cargo-hfuzz 0.5.55
ryanavella commented 9 months ago

Ah I see the issue, the error message is misleading:

https://github.com/rust-fuzz/honggfuzz-rs/blob/912092c1f14a505d180d888894e895a5baed4839/build.rs#L40

It isn't actually running make -C honggfuzz clean, but rather gmake -C honggfuzz clean.

I'll send a PR in a bit to improve diagnostics.