json-archive/fuzz/fuzz_targets/fuzz_random_bytes.rs

22 lines
No EOL
809 B
Rust

#![no_main]
use libfuzzer_sys::fuzz_target;
use json_archive::{ArchiveReader, ReadMode};
use std::io::Write;
use tempfile::NamedTempFile;
fuzz_target!(|data: &[u8]| {
// Write the random bytes to a temporary file
if let Ok(mut temp_file) = NamedTempFile::new() {
if temp_file.write_all(data).is_ok() {
// Try to read the file with both validation modes
for mode in [ReadMode::FullValidation, ReadMode::AppendSeek] {
if let Ok(reader) = ArchiveReader::new(temp_file.path(), mode) {
// The read operation should never panic, regardless of input
// It should either succeed or return an error gracefully
let _ = reader.read(temp_file.path());
}
}
}
}
});