Fix decode example/fuzz with new iteration

This commit is contained in:
A. Molzer committed 2026-04-08 20:43:12 +02:00
1 parent 86ac5b601e
commit a70e05e51e
2 files changed
+10 -12

No files matched your search

+6 -6
View File
@@ -13,17 +13,17 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut data = DecodingSampleBuffer::I8(vec![]); let mut data = DecodingSampleBuffer::I8(vec![]);
for i in 0u32.. { for i in 0u32.. {
if !reader.more_images() {
break;
}
reader.next_directory()?;
let colortype = reader.colortype()?; let colortype = reader.colortype()?;
let dimensions = reader.dimensions()?; let dimensions = reader.dimensions()?;
let layout = reader.read_image_to_buffer(&mut data)?; let layout = reader.read_image_to_buffer(&mut data)?;
debug_planes(i, &mut data, &layout, &colortype, dimensions); debug_planes(i, &mut data, &layout, &colortype, dimensions);
if !reader.more_images() {
break;
}
reader.next_image()?
} }
Ok(()) Ok(())
+4 -6
View File
@@ -2,7 +2,7 @@
use libfuzzer_sys::fuzz_target; use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: &[u8]| { fuzz_target!(|data: &[u8]| {
let mut decoder = if let Ok(d) = tiff::decoder::Decoder::new(std::io::Cursor::new(data)) { let mut decoder = if let Ok(d) = tiff::decoder::Decoder::open(std::io::Cursor::new(data)) {
d d
} else { } else {
return; return;
@@ -16,16 +16,14 @@ fuzz_target!(|data: &[u8]| {
decoder = decoder.with_limits(limits); decoder = decoder.with_limits(limits);
loop { loop {
if let Err(_) = decoder.read_image() {
break;
}
if !decoder.more_images() { if !decoder.more_images() {
break; break;
} }
if let Err(_) = decoder.next_image() { if let Err(_) = decoder.next_directory() {
break; break;
} }
let _ = decoder.read_image();
} }
}); });