From a70e05e51ea8496c32c30eefbe6142b361741821 Mon Sep 17 00:00:00 2001 From: "A. Molzer" <5550310+197g@users.noreply.github.com> Date: Wed, 8 Apr 2026 20:43:12 +0200 Subject: [PATCH] Fix decode example/fuzz with new iteration --- examples/decode.rs | 12 ++++++------ fuzz/fuzz_targets/decode_image.rs | 10 ++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/decode.rs b/examples/decode.rs index 39ddd00..9594e40 100644 --- a/examples/decode.rs +++ b/examples/decode.rs @@ -13,17 +13,17 @@ fn main() -> Result<(), Box> { let mut data = DecodingSampleBuffer::I8(vec![]); for i in 0u32.. { + if !reader.more_images() { + break; + } + + reader.next_directory()?; + let colortype = reader.colortype()?; let dimensions = reader.dimensions()?; let layout = reader.read_image_to_buffer(&mut data)?; debug_planes(i, &mut data, &layout, &colortype, dimensions); - - if !reader.more_images() { - break; - } - - reader.next_image()? } Ok(()) diff --git a/fuzz/fuzz_targets/decode_image.rs b/fuzz/fuzz_targets/decode_image.rs index 51a0892..7efea0d 100644 --- a/fuzz/fuzz_targets/decode_image.rs +++ b/fuzz/fuzz_targets/decode_image.rs @@ -2,7 +2,7 @@ use libfuzzer_sys::fuzz_target; 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 } else { return; @@ -16,16 +16,14 @@ fuzz_target!(|data: &[u8]| { decoder = decoder.with_limits(limits); loop { - if let Err(_) = decoder.read_image() { - break; - } - if !decoder.more_images() { break; } - if let Err(_) = decoder.next_image() { + if let Err(_) = decoder.next_directory() { break; } + + let _ = decoder.read_image(); } });