json-archive/fuzz/fuzz_targets/fuzz_random_bytes.rs

23 lines
907 B
Rust
Raw Normal View History

#![no_main]
use libfuzzer_sys::fuzz_target;
use json_archive::{read_archive, ReadMode};
use std::io::{BufReader, 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(file) = std::fs::File::open(temp_file.path()) {
let reader = BufReader::new(file);
// The read operation should never panic, regardless of input
// It should either succeed or return an error gracefully
let _ = read_archive(reader, &temp_file.path().display().to_string(), mode);
}
}
}
}
});