Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues
Report generation date: 2025-08-03

Project overview: image-rs

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
0.0%
5 / 1454
Cyclomatic complexity statically reachable by fuzzers
1.0%
11 / 2004
Runtime code coverage of functions
37.0%
533 / 1454

Warning: The number of runtime covered functions are larger than the number of reachable functions. This means that Fuzz Introspector found there are more functions covered at runtime than what is considered reachable based on the static analysis. This is a limitation in the analysis as anything covered at runtime is by definition reachable by the fuzzers.
This is likely due to a limitation in the static analysis. In this case, the count of functions covered at runtime is the true value, which means this is what should be considered "achieved" by the fuzzer.

Use the project functions table below to query all functions that were not covered at runtime.

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: fuzzer_script_gif

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1532 97.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 44 2.79%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
639 520 tiff::TiffDecoder::new call site: 00520 BmpDecoder::read_metadata
340 1166 ImageReader::make_decoder call site: 01166 HdrDecoder::with_strictness
125 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
85 65 ImageBuffer::inner_pixels_mut call site: 00065 TgaDecoder::expand_color_map
74 297 Box::read_image call site: 00297 TgaDecoder::expand_color_map
54 427 ImageReader::make_decoder call site: 00427 ImageReader::into_dimensions
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
36 389 Limits::check_dimensions call site: 00389
22 1507 pcx::PCXDecoder::new call site: 01507
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
13 1541 ImageDecoder::set_limits call site: 01541 TgaDecoder::expand_color_map

Runtime coverage analysis

Covered functions
169
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_gif.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: roundtrip_webp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1568 97.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 46 2.85%
All colors 1614 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
413 742 dds::DdsDecoder::new call site: 00742 BmpDecoder::read_metadata
293 1166 ImageReader::make_decoder call site: 01166 HdrDecoder::with_strictness
234 494 ImageReader::make_decoder call site: 00494 Header::from_reader
200 176 ImageDecoder::total_bytes call site: 00176 tests::test_image_outside_image_no_wrap_around
98 394 Limits::check_dimensions call site: 00394 TgaDecoder::expand_color_map
77 31 ImageBuffer::inner_pixels call site: 00031 BmpDecoder::num_channels
65 1460 pnm::PnmDecoder::new call site: 01460 FarbfeldReader::new
46 109 ImageDecoder::total_bytes call site: 00109 TgaDecoder::expand_color_map
31 1562 ImageBuffer::from_raw call site: 01562 Header::write_to
19 1537 ImageDecoder::set_limits call site: 01537 TgaDecoder::expand_color_map
19 1594 ImageReader::set_format call site: 01594 ImageDecoder::set_limits
16 377 Limits::check_support call site: 00377 Limits::check_dimensions

Runtime coverage analysis

Covered functions
141
Functions that are reachable but not covered
8
Reachable functions
16
Percentage of reachable functions covered
50.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/roundtrip_webp.rs 11
src/codecs/hdr/decoder.rs 55
src/color.rs 12
src/codecs/avif/encoder.rs 8
src/io/image_reader_type.rs 33
src/error.rs 109
src/images/buffer.rs 15
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/traits.rs 10
src/io/limits.rs 5
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/animation.rs 17
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
src/codecs/tga/header.rs 3
src/images/dynimage.rs 3
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_pnm

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1490 94.5%
gold [1:9] 10 0.63%
yellow [10:29] 3 0.19%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 73 4.63%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
419 740 crate::utils::check_dimension_overflow call site: 00740 BmpDecoder::read_metadata
239 1160 ImageReader::make_decoder call site: 01160 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
188 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
84 389 Limits::check_dimensions call site: 00389 ImageReader::into_dimensions
52 1464 pnm::PnmDecoder::new call site: 01464 FarbfeldReader::new
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
25 699 dds::DdsDecoder::new call site: 00699 DX10Header::validate
22 676 R::read_exact_vec call site: 00676 Header::from_reader
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
14 374 crate::LimitSupport::default call site: 00374 Limits::check_dimensions

Runtime coverage analysis

Covered functions
147
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_pnm.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_bmp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1383 87.7%
gold [1:9] 40 2.53%
yellow [10:29] 17 1.07%
greenyellow [30:49] 13 0.82%
lawngreen 50+ 123 7.80%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
351 1178 ImageReader::make_decoder call site: 01178 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
188 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
109 980 BmpDecoder::read_palette call site: 00980 vertical_sample
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
84 389 Limits::check_dimensions call site: 00389 ImageReader::into_dimensions
82 676 R::read_exact_vec call site: 00676 Header::from_reader
47 1112 bmp::BmpDecoder::new call site: 01112 ImageReader::make_decoder
41 926 BmpDecoder::read_metadata call site: 00926 FarbfeldReader::seek
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
22 801 check_for_overflow call site: 00801
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
112
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_bmp.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_jpeg

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1538 97.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 38 2.41%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
594 565 tiff::TiffDecoder::new call site: 00565 BmpDecoder::read_metadata
309 1168 ImageReader::make_decoder call site: 01168 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
125 437 ImageReader::make_decoder call site: 00437 TgaDecoder::expand_color_map
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
43 1486 FarbfeldReader::new call site: 01486 Enlargeable::clamp_from
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
41 389 Limits::check_dimensions call site: 00389
24 1530 ImageReader::require_format call site: 01530 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
12 1563 GifDecoder::new call site: 01563 ImageDecoder::set_limits
8 151 ImageDecoder::total_bytes call site: 00151 Enlargeable::clamp_from

Runtime coverage analysis

Covered functions
216
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_jpeg.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_ico

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1375 87.2%
gold [1:9] 41 2.60%
yellow [10:29] 14 0.88%
greenyellow [30:49] 5 0.31%
lawngreen 50+ 141 8.94%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
311 1180 ImageReader::make_decoder call site: 01180 HdrDecoder::with_strictness
204 458 ::std::io::Result::channel_count call site: 00458 Header::from_reader
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
109 980 BmpDecoder::read_palette call site: 00980 vertical_sample
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
86 676 R::read_exact_vec call site: 00676 BmpDecoder::read_metadata
60 389 Limits::check_dimensions call site: 00389 PCXReader::read_to_end
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
41 926 BmpDecoder::read_metadata call site: 00926 FarbfeldReader::seek
37 1492 FarbfeldReader::new call site: 01492 Enlargeable::clamp_from
22 801 check_for_overflow call site: 00801
21 1114 ImageReader::make_decoder call site: 01114 read_entries

Runtime coverage analysis

Covered functions
342
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_ico.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_png

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1548 98.2%
gold [1:9] 0 0.0%
yellow [10:29] 5 0.31%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 1.45%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
701 458 ::std::io::Result::channel_count call site: 00458 BmpDecoder::read_metadata
327 1164 ImageReader::make_decoder call site: 01164 HdrDecoder::with_strictness
197 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
60 389 Limits::check_dimensions call site: 00389 PCXReader::read_to_end
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
37 1492 FarbfeldReader::new call site: 01492 Enlargeable::clamp_from
24 1530 ImageReader::require_format call site: 01530 ImageDecoder::set_limits
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
8 151 ImageDecoder::total_bytes call site: 00151 Enlargeable::clamp_from
7 0 EP call site: 00000 ImageReader::make_decoder

Runtime coverage analysis

Covered functions
318
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_png.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_webp

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1550 98.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 26 1.64%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
413 746 dds::DdsDecoder::new call site: 00746 BmpDecoder::read_metadata
311 60 ImageBuffer::image_buffer_len call site: 00060 tests::test_image_outside_image_no_wrap_around
293 1170 ImageReader::make_decoder call site: 01170 HdrDecoder::with_strictness
234 498 ImageReader::make_decoder call site: 00498 Header::from_reader
107 389 Limits::check_dimensions call site: 00389 TgaDecoder::expand_color_map
65 1464 pnm::PnmDecoder::new call site: 01464 FarbfeldReader::new
47 8 ImageReader::make_decoder call site: 00008 TgaDecoder::expand_color_map
24 1530 ImageReader::require_format call site: 01530 ImageDecoder::set_limits
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
8 1160 ImageReader::make_decoder call site: 01160
7 0 EP call site: 00000 ImageReader::make_decoder

Runtime coverage analysis

Covered functions
313
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_webp.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_hdr

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1395 88.5%
gold [1:9] 23 1.45%
yellow [10:29] 4 0.25%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 154 9.77%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
419 740 crate::utils::check_dimension_overflow call site: 00740 BmpDecoder::read_metadata
204 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
120 1329 HdrDecoder::with_strictness call site: 01329 Delay::closest_bounded_fraction
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
60 1452 utils::check_dimension_overflow call site: 01452 FarbfeldReader::new
58 389 Limits::check_dimensions call site: 00389 PCXReader::read_to_end
57 680 tga::TgaDecoder::new call site: 00680 Header::from_reader
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
20 1160 ImageReader::make_decoder call site: 01160
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
15 1514 ImageReader::make_decoder call site: 01514

Runtime coverage analysis

Covered functions
84
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_hdr.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_tga

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1342 83.4%
gold [1:9] 35 2.17%
yellow [10:29] 13 0.80%
greenyellow [30:49] 37 2.30%
lawngreen 50+ 181 11.2%
All colors 1608 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
359 830 TgaDecoder::expand_color_map call site: 00830 BmpDecoder::read_bitmap_info_header
283 1190 hdr::HdrDecoder::new call site: 01190 HdrMetadata::update_header_info
208 388 avif::AvifDecoder::new call site: 00388 TgaDecoder::expand_color_map
133 191 ImageDecoder::total_bytes call site: 00191 tests::test_image_outside_image_no_wrap_around
81 24 image::codecs::tga::TgaDecoder::new call site: 00024 ImageReader::make_decoder
54 699 tga::TgaDecoder::new call site: 00699 Header::from_reader
51 757 DxtDecoder::new call site: 00757 BmpDecoder::read_metadata
36 1519 ico::IcoDecoder::new call site: 01519 ImageDecoder::set_limits
24 1475 farbfeld::FarbfeldDecoder::new call site: 01475 F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::n::e::w::read_dimm
18 1500 FarbfeldReader::new call site: 01500 Enlargeable::clamp_from
15 108 pcx::Reader::new call site: 00108 Enlargeable::clamp_from
11 340 avif::AvifDecoder::new call site: 00340

Runtime coverage analysis

Covered functions
38
Functions that are reachable but not covered
2
Reachable functions
7
Percentage of reachable functions covered
71.43%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_tga.rs 2
tests/limits_anim.rs 5
src/error.rs 108
src/codecs/dds.rs 11
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 32
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 12
src/traits.rs 10
src/io/limits.rs 5
src/io/free_functions.rs 11
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/animation.rs 17
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11

Fuzzer: fuzzer_script_tiff

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1531 97.1%
gold [1:9] 16 1.01%
yellow [10:29] 12 0.76%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 17 1.07%
All colors 1576 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
576 583 err_unknown_color_type call site: 00583 BmpDecoder::read_metadata
357 1172 ImageReader::make_decoder call site: 01172 HdrDecoder::with_strictness
311 60 ImageBuffer::image_buffer_len call site: 00060 tests::test_image_outside_image_no_wrap_around
115 389 Limits::check_dimensions call site: 00389 TgaDecoder::expand_color_map
47 8 ImageReader::make_decoder call site: 00008 TgaDecoder::expand_color_map
24 1530 ImageReader::require_format call site: 01530 ImageDecoder::set_limits
23 506 ImageReader::make_decoder call site: 00506 TgaDecoder::expand_color_map
23 555 ImageError::from_tiff_decode call site: 00555 TgaDecoder::expand_color_map
20 1555 ImageReader::set_format call site: 01555 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
10 1160 ImageReader::make_decoder call site: 01160
7 0 EP call site: 00000 ImageReader::make_decoder

Runtime coverage analysis

Covered functions
575
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_tiff.rs 2
src/images/dynimage.rs 3
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 33
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 14
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_exr

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1579 96.5%
gold [1:9] 0 0.0%
yellow [10:29] 48 2.93%
greenyellow [30:49] 6 0.36%
lawngreen 50+ 2 0.12%
All colors 1635 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
658 699 to_image_err call site: 00699 BmpDecoder::read_metadata
212 483 ::std::io::Result::channel_count call site: 00483 Header::from_reader
135 1384 OpenExrDecoder::with_alpha_preference call site: 01384 FarbfeldReader::new
125 196 ImageDecoder::total_bytes call site: 00196 tests::test_image_outside_image_no_wrap_around
114 26 OpenExrDecoder::with_alpha_preference call site: 00026 ImageReader::make_decoder
74 322 Box::read_image call site: 00322 TgaDecoder::expand_color_map
60 414 Limits::check_dimensions call site: 00414 PCXReader::read_to_end
42 141 ImageDecoder::total_bytes call site: 00141 TgaDecoder::expand_color_map
37 1593 roundtrip call site: 01593 write_buffer
31 1526 ImageDecoder::set_limits call site: 01526 Delay::closest_bounded_fraction
18 7 OpenExrDecoder::with_alpha_preference call site: 00007
16 397 Limits::check_support call site: 00397 Limits::check_dimensions

Runtime coverage analysis

Covered functions
1299
Functions that are reachable but not covered
5
Reachable functions
8
Percentage of reachable functions covered
37.5%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_exr.rs 20
src/codecs/openexr.rs 34
src/images/buffer.rs 13
src/error.rs 108
src/images/buffer_par.rs 1
src/animation.rs 17
src/traits.rs 10
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 32
src/codecs/farbfeld.rs 30
src/color.rs 15
src/io/limits.rs 5
src/io/free_functions.rs 11
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11

Fuzzer: fuzzer_script_guess

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1252 76.4%
gold [1:9] 83 5.07%
yellow [10:29] 58 3.54%
greenyellow [30:49] 14 0.85%
lawngreen 50+ 230 14.0%
All colors 1637 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
303 70 ImageBuffer::inner_pixels_mut call site: 00070 tests::test_image_outside_image_no_wrap_around
109 985 BmpDecoder::read_palette call site: 00985 vertical_sample
79 588 err_unknown_color_type call site: 00588 Header::from_reader
48 1347 OpenExrDecoder::with_alpha_preference call site: 01347 Delay::closest_bounded_fraction
47 13 ImageReader::make_decoder call site: 00013 TgaDecoder::expand_color_map
45 1409 HeaderReader::read_magic_constant call site: 01409 PnmDecoder::read_graymap_header
41 931 BmpDecoder::read_metadata call site: 00931 FarbfeldReader::seek
38 463 ::std::io::Result::channel_count call site: 00463 TgaDecoder::expand_color_map
36 394 Limits::check_dimensions call site: 00394
36 860 BmpDecoder::read_bitmap_info_header call site: 00860
25 1471 ImageReader::make_decoder call site: 01471 FarbfeldReader::new
23 560 ImageError::from_tiff_decode call site: 00560 TgaDecoder::expand_color_map

Runtime coverage analysis

Covered functions
2316
Functions that are reachable but not covered
2
Reachable functions
2
Percentage of reachable functions covered
0.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_guess.rs 2
src/images/dynimage.rs 6
src/io/image_reader_type.rs 40
src/error.rs 109
src/codecs/avif/encoder.rs 5
src/io/limits.rs 5
src/traits.rs 10
src/io/free_functions.rs 24
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 14
src/images/buffer.rs 13
src/images/buffer_par.rs 1
src/animation.rs 17
src/codecs/farbfeld.rs 30
src/color.rs 12
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 8
src/images/flat.rs 2
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 20
src/codecs/pcx.rs 7
src/codecs/hdr/decoder.rs 55
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/utils/mod.rs 4
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 24
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
src/codecs/gif.rs 9
tests/limits_anim.rs 6

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

fuzz/fuzzers/fuzzer_script_gif.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['tiff::TiffDecoder::new', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'ImageBuffer::inner_pixels_mut', 'Box::read_image', 'Limits::check_dimensions', 'pcx::PCXDecoder::new', 'ImageReader::set_format']

fuzz/fuzzers/roundtrip_webp.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['dds::DdsDecoder::new', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'Limits::check_dimensions', 'ImageBuffer::inner_pixels', 'pnm::PnmDecoder::new', 'ImageBuffer::from_raw', 'ImageDecoder::set_limits']

fuzz/fuzzers/fuzzer_script_pnm.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['crate::utils::check_dimension_overflow', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'zune_core::options::DecoderOptions::default', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'pnm::PnmDecoder::new', 'Limits::default', 'dds::DdsDecoder::new', 'R::read_exact_vec']

fuzz/fuzzers/fuzzer_script_bmp.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'zune_core::options::DecoderOptions::default', 'BmpDecoder::read_palette', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'R::read_exact_vec', 'bmp::BmpDecoder::new', 'BmpDecoder::read_metadata', 'Limits::default']

fuzz/fuzzers/fuzzer_script_jpeg.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['tiff::TiffDecoder::new', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'FarbfeldReader::new', 'Limits::check_dimensions', 'ImageReader::require_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_ico.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ImageReader::make_decoder', '::std::io::Result::channel_count', 'ImageDecoder::total_bytes', 'BmpDecoder::read_palette', 'ImageBuffer::image_buffer_len', 'R::read_exact_vec', 'Limits::check_dimensions', 'BmpDecoder::read_metadata', 'FarbfeldReader::new']

fuzz/fuzzers/fuzzer_script_png.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['::std::io::Result::channel_count', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'FarbfeldReader::new', 'ImageReader::require_format', 'ImageReader::set_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_webp.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['dds::DdsDecoder::new', 'ImageBuffer::image_buffer_len', 'ImageReader::make_decoder', 'Limits::check_dimensions', 'pnm::PnmDecoder::new', 'ImageReader::require_format', 'ImageReader::set_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_hdr.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['crate::utils::check_dimension_overflow', 'zune_core::options::DecoderOptions::default', 'ImageDecoder::total_bytes', 'HdrDecoder::with_strictness', 'ImageBuffer::image_buffer_len', 'utils::check_dimension_overflow', 'Limits::check_dimensions', 'tga::TgaDecoder::new', 'Limits::default', 'ImageReader::make_decoder']

fuzz/fuzzers/fuzzer_script_tga.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['TgaDecoder::expand_color_map', 'hdr::HdrDecoder::new', 'avif::AvifDecoder::new', 'ImageDecoder::total_bytes', 'image::codecs::tga::TgaDecoder::new', 'tga::TgaDecoder::new', 'DxtDecoder::new', 'ico::IcoDecoder::new', 'farbfeld::FarbfeldDecoder::new', 'FarbfeldReader::new']

fuzz/fuzzers/fuzzer_script_tiff.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['err_unknown_color_type', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'ImageReader::require_format', 'ImageError::from_tiff_decode', 'ImageReader::set_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_exr.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['to_image_err', '::std::io::Result::channel_count', 'OpenExrDecoder::with_alpha_preference', 'ImageDecoder::total_bytes', 'Box::read_image', 'Limits::check_dimensions', 'roundtrip', 'ImageDecoder::set_limits']

fuzz/fuzzers/fuzzer_script_guess.rs

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ImageBuffer::inner_pixels_mut', 'BmpDecoder::read_palette', 'err_unknown_color_type', 'OpenExrDecoder::with_alpha_preference', 'ImageReader::make_decoder', 'HeaderReader::read_magic_constant', 'BmpDecoder::read_metadata', '::std::io::Result::channel_count', 'Limits::check_dimensions', 'BmpDecoder::read_bitmap_info_header']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
/src/image/src/codecs/openexr.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/imageops/mod.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] []
/src/image/fuzz-afl/reproducers/reproduce_pnm.rs [] []
/src/image/src/codecs/ico/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/imageops/fast_blur.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] []
/src/image/src/images/sub_image.rs [] []
/src/image/fuzz-afl/reproducers/utils.rs [] []
/src/image/src/codecs/hdr/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/roundtrip_webp.rs ['roundtrip_webp'] []
/src/image/src/math/utils.rs [] []
/src/image/src/images/generic_image.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/hdr/encoder.rs [] []
/src/image/src/color.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/images/flat.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/io/limits.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/fuzzer_script_ico.rs ['fuzzer_script_ico'] []
/src/image/src/codecs/jpeg/encoder.rs [] []
/src/image/src/codecs/pnm/encoder.rs [] []
/src/image/src/io.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_ico', 'fuzzer_script_tga', 'fuzzer_script_guess']
/src/image/src/codecs/avif/yuv.rs [] []
/src/image/src/codecs/qoi.rs [] []
/src/image/src/codecs/pnm/autobreak.rs [] []
/src/image/src/io/free_functions.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/traits.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['roundtrip_webp']
/src/image/src/images/dynimage.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_guess']
/src/image/tests/regression.rs [] []
/src/image/src/codecs/jpeg/decoder.rs [] []
/src/image/fuzz/fuzzers/fuzzer_script_gif.rs ['fuzzer_script_gif'] []
/src/image/src/codecs/dds.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/benches/encode.rs [] []
/src/image/fuzz/fuzzers/fuzzer_script_guess.rs ['fuzzer_script_guess'] []
/src/image/src/codecs/jpeg/entropy.rs [] []
/src/image/src/metadata.rs [] []
/src/image/src/imageops/filter_1d.rs [] []
/src/image/src/codecs/jpeg/transform.rs [] []
/src/image/fuzz/fuzzers/fuzzer_script_webp.rs ['fuzzer_script_webp'] []
/src/image/src/io/format.rs [] []
/src/image/src/images/buffer_par.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/gif.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_guess']
/src/image/src/codecs/bmp/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/examples/scaledown/main.rs [] []
/src/image/src/codecs/ico/encoder.rs [] []
/src/image/src/codecs/bmp/encoder.rs [] []
/src/image/src/codecs/dxt.rs [] []
/src/image/fuzz-afl/reproducers/reproduce_webp.rs [] []
/src/image/src/codecs/avif/ycgco.rs [] []
/src/image/src/animation.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/png.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/webp/decoder.rs [] []
/src/image/tests/limits.rs [] []
/src/image/src/io/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/tiff.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/fuzzer_script_bmp.rs ['fuzzer_script_bmp'] []
/src/image/src/lib.rs [] []
/src/image/benches/decode.rs [] []
/src/image/src/codecs/farbfeld.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/fuzzer_script_png.rs ['fuzzer_script_png'] []
/src/image/examples/concat/main.rs [] []
/src/image/src/codecs/avif/encoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/tests/save_pnm.rs [] []
/src/image/src/codecs/tga/header.rs ['roundtrip_webp'] ['roundtrip_webp']
/src/image/src/images/buffer.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/fuzzer_script_exr.rs ['fuzzer_script_exr'] ['fuzzer_script_exr']
/src/image/fuzz/fuzzers/fuzzer_script_pnm.rs ['fuzzer_script_pnm'] []
/src/image/src/codecs/webp/encoder.rs [] []
/src/image/src/codecs/pnm/mod.rs [] []
/src/image/src/imageops/affine.rs [] []
/src/image/src/codecs/avif/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/fuzz/fuzzers/fuzzer_script_tga.rs ['fuzzer_script_tga'] ['fuzzer_script_tga']
/src/image/benches/copy_from.rs [] []
/src/image/fuzz/fuzzers/fuzzer_script_jpeg.rs ['fuzzer_script_jpeg'] []
/src/image/fuzz/fuzzers/fuzzer_script_tiff.rs ['fuzzer_script_tiff'] []
/src/image/src/imageops/colorops.rs [] []
/src/image/src/utils/mod.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_pnm', 'fuzzer_script_jpeg', 'fuzzer_script_hdr', 'fuzzer_script_tiff', 'fuzzer_script_guess']
/src/image/src/io/image_reader_type.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/imageops/sample.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/codecs/pnm/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/tests/reference_images.rs [] []
/src/image/tests/conversions.rs [] []
/src/image/src/error.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/src/io/encoder.rs [] []
/src/image/src/codecs/tga/encoder.rs [] []
/src/image/fuzz/fuzzers/fuzzer_script_hdr.rs ['fuzzer_script_hdr'] []
/src/image/src/codecs/pnm/header.rs [] []
/src/image/src/codecs/tga/decoder.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/tests/save_jpeg.rs [] []
/src/image/tests/truncate_images.rs [] []
/src/image/src/codecs/pcx.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess'] ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_exr', 'fuzzer_script_guess']
/src/image/benches/blur.rs [] []
/src/image/tests/limits_anim.rs ['fuzzer_script_gif', 'roundtrip_webp', 'fuzzer_script_pnm', 'fuzzer_script_bmp', 'fuzzer_script_jpeg', 'fuzzer_script_ico', 'fuzzer_script_png', 'fuzzer_script_webp', 'fuzzer_script_hdr', 'fuzzer_script_tga', 'fuzzer_script_tiff', 'fuzzer_script_guess'] []

Directories in report

Directory
/src/image/src/codecs/pnm/
/src/image/src/
/src/image/src/images/
/src/image/src/codecs/webp/
/src/image/tests/
/src/image/fuzz/fuzzers/
/src/image/src/imageops/
/src/image/src/codecs/
/src/image/src/math/
/src/image/src/codecs/avif/
/src/image/examples/concat/
/src/image/src/io/
/src/image/src/codecs/ico/
/src/image/benches/
/src/image/src/codecs/tga/
/src/image/src/codecs/hdr/
/src/image/src/utils/
/src/image/src/codecs/bmp/
/src/image/examples/scaledown/
/src/image/src/codecs/jpeg/
/src/image/fuzz-afl/reproducers/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
fuzzer_script_gif fuzzerLogFile-fuzzer_script_gif.data fuzzerLogFile-fuzzer_script_gif.data.yaml fuzzer_script_gif.covreport
roundtrip_webp fuzzerLogFile-roundtrip_webp.data fuzzerLogFile-roundtrip_webp.data.yaml roundtrip_webp.covreport
fuzzer_script_pnm fuzzerLogFile-fuzzer_script_pnm.data fuzzerLogFile-fuzzer_script_pnm.data.yaml fuzzer_script_pnm.covreport
fuzzer_script_bmp fuzzerLogFile-fuzzer_script_bmp.data fuzzerLogFile-fuzzer_script_bmp.data.yaml fuzzer_script_bmp.covreport
fuzzer_script_jpeg fuzzerLogFile-fuzzer_script_jpeg.data fuzzerLogFile-fuzzer_script_jpeg.data.yaml fuzzer_script_jpeg.covreport
fuzzer_script_ico fuzzerLogFile-fuzzer_script_ico.data fuzzerLogFile-fuzzer_script_ico.data.yaml fuzzer_script_ico.covreport
fuzzer_script_png fuzzerLogFile-fuzzer_script_png.data fuzzerLogFile-fuzzer_script_png.data.yaml fuzzer_script_png.covreport
fuzzer_script_webp fuzzerLogFile-fuzzer_script_webp.data fuzzerLogFile-fuzzer_script_webp.data.yaml fuzzer_script_webp.covreport
fuzzer_script_hdr fuzzerLogFile-fuzzer_script_hdr.data fuzzerLogFile-fuzzer_script_hdr.data.yaml fuzzer_script_hdr.covreport
fuzzer_script_tga fuzzerLogFile-fuzzer_script_tga.data fuzzerLogFile-fuzzer_script_tga.data.yaml fuzzer_script_tga.covreport
fuzzer_script_tiff fuzzerLogFile-fuzzer_script_tiff.data fuzzerLogFile-fuzzer_script_tiff.data.yaml fuzzer_script_tiff.covreport
fuzzer_script_exr fuzzerLogFile-fuzzer_script_exr.data fuzzerLogFile-fuzzer_script_exr.data.yaml fuzzer_script_exr.covreport
fuzzer_script_guess fuzzerLogFile-fuzzer_script_guess.data fuzzerLogFile-fuzzer_script_guess.data.yaml fuzzer_script_guess.covreport