Line | Count | Source |
1 | #![no_main] | |
2 | #[macro_use] extern crate libfuzzer_sys; | |
3 | extern crate image; | |
4 | ||
5 | fuzz_target!(|data: &[u8]| { | |
6 | let _ = decode(data); | |
7 | }); | |
8 | ||
9 | 1.18k | fn decode(data: &[u8]) -> Result<(), image::ImageError> { |
10 | use image::ImageDecoder; | |
11 | 1.18k | let mut decoder = image::codecs::tga::TgaDecoder::new(std::io::Cursor::new(data))?; |
12 | 944 | if decoder.prepare_image()?.total_bytes() > 4_000_000 { |
13 | 61 | return Ok(()); |
14 | 883 | } |
15 | 883 | let mut buffer = vec![0; decoder.prepare_image()?.total_bytes() as usize]; |
16 | 883 | decoder.read_image(&mut buffer)?; |
17 | 347 | Ok(()) |
18 | 1.18k | } |