You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I made the minidump_processor fuzzer look more like
let val:Result<_,_> = minidump_processor_fuzz::fuzzing_block_on(
minidump_processor::process_minidump(&dump,&provider),);ifletOk(v) = val {
v.print_json(&mut std::io::sink(),true);}
And then found this:
thread '<unnamed>' panicked at 'index out of bounds: the len is 0 but the index is 0', /home/jess/src/rust-minidump/minidump-processor/src/process_state.rs:806:45
stack backtrace:
0: rust_begin_unwind
at /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/core/src/panicking.rs:135:14
2: core::panicking::panic_bounds_check
at /rustc/88fb06a1f331926bccb448acdb52966fd1ec8a92/library/core/src/panicking.rs:77:5
3: minidump_processor::process_state::ProcessState::print_json
4: rust_fuzzer_test_input
5: LLVMFuzzerTestOneInput
6: _ZN6fuzzer6Fuzzer15ExecuteCallbackEPKhm
7: _ZN6fuzzer10RunOneTestEPNS_6FuzzerEPKcm
8: _ZN6fuzzer12FuzzerDriverEPiPPPcPFiPKhmE
9: main
10: __libc_start_main
11: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
==3765619== ERROR: libFuzzer: deadly signal
NOTE: libFuzzer has rudimentary signal handlers.
Combine libFuzzer with AddressSanitizer or similar for better crash reports.
SUMMARY: libFuzzer: deadly signal
I'd need to think about the testcase and code more to have a strong opinion on whether this code should just be more careful or if the processor should be producing more reasonable output.
IMO the processor should be generating output in a such a way that will never cause a print to fail like this
we also have integer overflows in the printer, and if we don't know ahead of time which are valid/invalid, we'll need to deal with "oh we wrote half a dump and then failed.... what now?" Unless there's a mechanism in the format to say "this value is invalid but we continued on" or whatever. This was the human readable printer, but there also looks to be one in the json printer, see:
I made the
minidump_processor
fuzzer look more likeAnd then found this:
json-crash.zip
The text was updated successfully, but these errors were encountered: