#![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); } } } } });