22 lines
No EOL
809 B
Rust
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());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}); |