rust-fuzz / honggfuzz-rs

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

too many PC-guards #88

Open matthiaskrgr opened 4 months ago

matthiaskrgr commented 4 months ago

I already tried to apply the workaround from https://github.com/rust-fuzz/honggfuzz-rs/issues/19

/* Size (in bytes) for report data to be stored in stack before written to file */
#define _HF_REPORT_SIZE 32768
// #https://github.com/google/honggfuzz/commit/e2be7a962bad2ab1598b8ae1f55103968096c82c
/* Perf bitmap size */
#define _HF_PERF_BITMAP_SIZE_16M   (1024U * 1024U * 16U)
#define _HF_PERF_BITMAP_BITSZ_MASK 0x7FFFFFFULL
/* Maximum number of PC guards (=trace-pc-guard) we support */
// FIXED
#define _HF_PC_GUARD_MAX (1024ULL * 1024ULL * 128ULL)
// FIXED
/* Maximum size of the input file in bytes (1 MiB) */
#define _HF_INPUT_MAX_SIZE (1024ULL * 1024ULL *128ULL)

But to no avail [2024-06-06T03:18:01+0200][F][66490] instrumentReserveGuard():263 This process requested too many PC-guards, total:135709549, requested:3479732)

When I try #define _HF_PC_GUARD_MAX (1024ULL * 1024ULL * 256ULL * 16ULL)

I get linker errors

text+0x122): relocation R_X86_64_PC32 out of range: 4461809218 is not in [-2147483648, 2147483647]; references section '.bss'
          >>> referenced by performance.c:33 (libhfuzz/performance.c:33)

#define _HF_PC_GUARD_MAX ULLONG_MAX didn't work either. :sweat_smile: any ideas?

matthiaskrgr commented 4 months ago

I yeeted the entire check from the hf-rs sources in my cargo cache which seems to be somewhat of a workaround but im not sure what the side effects of this are... 😅