30 lines
660 B
Rust
30 lines
660 B
Rust
#![no_main]
|
|
use libfuzzer_sys::fuzz_target;
|
|
|
|
fuzz_target!(|data: &[u8]| {
|
|
let mut decoder = if let Ok(d) = tiff::decoder::Decoder::open(std::io::Cursor::new(data)) {
|
|
d
|
|
} else {
|
|
return;
|
|
};
|
|
|
|
let mut limits = tiff::decoder::Limits::default();
|
|
limits.decoding_buffer_size = 1_000_000;
|
|
limits.ifd_value_size = 1_000_000;
|
|
limits.intermediate_buffer_size = 1_000_000;
|
|
|
|
decoder = decoder.with_limits(limits);
|
|
|
|
loop {
|
|
if !decoder.more_images() {
|
|
break;
|
|
}
|
|
|
|
if let Err(_) = decoder.next_directory() {
|
|
break;
|
|
}
|
|
|
|
let _ = decoder.read_image();
|
|
}
|
|
});
|