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

Project overview: image-rs

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
0.0%
5 / 1575
Cyclomatic complexity statically reachable by fuzzers
1.0%
11 / 2145
Runtime code coverage of functions
30.0%
480 / 1575

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 1630 98.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 33 1.98%
All colors 1663 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
664 613 tiff::TiffDecoder::new call site: 00613 BmpDecoder::read_metadata
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
183 1284 ImageReader::make_decoder call site: 01284 HdrDecoder::with_strictness
146 98 ImageBuffer::inner_pixels_mut call site: 00098 Orientation::locate_orientation_entry
146 1469 gcd call site: 01469 Delay::closest_bounded_fraction
87 0 EP call site: 00000 ImageReader::make_decoder
36 519 Limits::check_dimensions call site: 00519
21 557 ImageReader::make_decoder call site: 00557
18 591 jpeg::JpegDecoder::new call site: 00591
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits
17 1625 ImageDecoder::set_limits call site: 01625 TgaDecoder::expand_color_map
16 502 Limits::check_support call site: 00502 Limits::check_dimensions

Runtime coverage analysis

Covered functions
174
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1480 88.9%
gold [1:9] 40 2.40%
yellow [10:29] 15 0.90%
greenyellow [30:49] 13 0.78%
lawngreen 50+ 115 6.91%
All colors 1663 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
319 1296 ImageReader::make_decoder call site: 01296 HdrDecoder::with_strictness
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
191 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
117 1068 BmpDecoder::read_palette call site: 01068 vertical_sample
88 798 R::read_exact_vec call site: 00798 Header::from_reader
87 0 EP call site: 00000 ImageReader::make_decoder
69 1208 bmp::BmpDecoder::new call site: 01208 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
22 929 check_for_overflow call site: 00929 ColorMap::get
22 1618 ImageReader::require_format call site: 01618 ImageDecoder::set_limits
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
118
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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_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 1552 93.3%
gold [1:9] 10 0.60%
yellow [10:29] 4 0.24%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 97 5.83%
All colors 1663 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
405 872 dds::DdsDecoder::new call site: 00872 BmpDecoder::read_metadata
244 1278 ImageReader::make_decoder call site: 01278 HdrDecoder::with_strictness
223 278 crate::utils::check_dimension_overflow call site: 00278 tests::test_image_outside_image_no_wrap_around
191 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
87 0 EP call site: 00000 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
46 798 R::read_exact_vec call site: 00798 Header::from_reader
30 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
22 1618 ImageReader::require_format call site: 01618 ImageDecoder::set_limits
18 1586 pnm::PnmDecoder::new call site: 01586 FarbfeldReader::new
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
188
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1633 98.1%
gold [1:9] 5 0.30%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 25 1.50%
All colors 1663 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
499 778 ::std::io::Result::channel_count call site: 00778 BmpDecoder::read_metadata
333 1282 ImageReader::make_decoder call site: 01282 HdrDecoder::with_strictness
250 519 Limits::check_dimensions call site: 00519 Header::from_reader
174 324 ImageDecoder::total_bytes call site: 00324 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
87 0 EP call site: 00000 ImageReader::make_decoder
37 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
24 1618 ImageReader::require_format call site: 01618 ImageDecoder::set_limits
18 283 FarbfeldReader::new call site: 00283 ExtendedColorType::color_type
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
10 312 ImageDecoder::total_bytes call site: 00312

Runtime coverage analysis

Covered functions
357
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1644 98.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 19 1.14%
All colors 1663 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
676 601 ImageReader::make_decoder call site: 00601 BmpDecoder::read_metadata
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
179 1288 ImageReader::make_decoder call site: 01288 HdrDecoder::with_strictness
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
147 1468 Ratio::new call site: 01468 Delay::closest_bounded_fraction
87 0 EP call site: 00000 ImageReader::make_decoder
80 519 Limits::check_dimensions call site: 00519 TgaDecoder::expand_color_map
24 1618 ImageReader::require_format call site: 01618 ImageDecoder::set_limits
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
8 1278 ImageReader::make_decoder call site: 01278
1 1616 ImageReader::require_format call site: 01616

Runtime coverage analysis

Covered functions
338
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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_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 1620 97.4%
gold [1:9] 16 0.96%
yellow [10:29] 5 0.30%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 22 1.32%
All colors 1663 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 683 err_unknown_color_type call site: 00683 BmpDecoder::read_metadata
314 1301 hdr::HdrDecoder::new call site: 01301 HdrMetadata::update_header_info
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
88 519 Limits::check_dimensions call site: 00519 TgaDecoder::expand_color_map
87 0 EP call site: 00000 ImageReader::make_decoder
24 1618 ImageReader::require_format call site: 01618 ImageDecoder::set_limits
23 609 ImageReader::make_decoder call site: 00609 FarbfeldDecoder::new
23 655 ImageError::from_tiff_decode call site: 00655 TgaDecoder::expand_color_map
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
10 1278 ImageReader::make_decoder call site: 01278

Runtime coverage analysis

Covered functions
632
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1460 87.7%
gold [1:9] 41 2.46%
yellow [10:29] 14 0.84%
greenyellow [30:49] 5 0.30%
lawngreen 50+ 143 8.59%
All colors 1663 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
317 1298 ImageReader::make_decoder call site: 01298 HdrDecoder::with_strictness
247 519 Limits::check_dimensions call site: 00519 Header::from_reader
177 324 ImageDecoder::total_bytes call site: 00324 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
117 1068 BmpDecoder::read_palette call site: 01068 vertical_sample
92 798 R::read_exact_vec call site: 00798 BmpDecoder::read_metadata
87 0 EP call site: 00000 ImageReader::make_decoder
37 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
22 929 check_for_overflow call site: 00929 ColorMap::get
21 1210 ImageReader::make_decoder call site: 01210 read_entries
18 283 FarbfeldReader::new call site: 00283 ExtendedColorType::color_type
18 1278 ImageReader::make_decoder call site: 01278

Runtime coverage analysis

Covered functions
369
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1682 98.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 28 1.63%
All colors 1710 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
667 606 ImageReader::make_decoder call site: 00606 BmpDecoder::read_metadata
256 250 ImageReader::make_decoder call site: 00250 tests::test_image_outside_image_no_wrap_around
204 45 ImageBuffer::inner_pixels call site: 00045 Orientation::locate_orientation_entry
179 1284 ImageReader::make_decoder call site: 01284 HdrDecoder::with_strictness
147 1464 Ratio::new call site: 01464 Delay::closest_bounded_fraction
80 524 Limits::check_dimensions call site: 00524 TgaDecoder::expand_color_map
30 1658 ImageBuffer::from_raw call site: 01658 Header::write_to
29 1614 ImageReader::require_format call site: 01614 ImageDecoder::set_limits
27 0 EP call site: 00000 ImageReader::make_decoder
19 1690 ImageReader::set_format call site: 01690 ImageDecoder::set_limits
16 507 Limits::check_support call site: 00507 Limits::check_dimensions
11 32 ImageBuffer::image_buffer_len call site: 00032

Runtime coverage analysis

Covered functions
147
Functions that are reachable but not covered
8
Reachable functions
17
Percentage of reachable functions covered
52.94%
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 15
src/codecs/avif/encoder.rs 9
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/error.rs 107
src/images/buffer.rs 16
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 9
src/traits.rs 10
src/metadata.rs 15
src/animation.rs 18
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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_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 1425 83.8%
gold [1:9] 67 3.94%
yellow [10:29] 20 1.17%
greenyellow [30:49] 13 0.76%
lawngreen 50+ 174 10.2%
All colors 1699 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
287 1305 hdr::HdrDecoder::new call site: 01305 HdrMetadata::update_header_info
259 955 TgaDecoder::expand_color_map call site: 00955 BmpDecoder::read_bitmap_info_header
131 341 ImageDecoder::total_bytes call site: 00341 tests::test_image_outside_image_no_wrap_around
112 515 avif::AvifDecoder::new call site: 00515 FarbfeldDecoder::new
71 629 FarbfeldDecoder::new call site: 00629 TgaDecoder::expand_color_map
69 34 ColorMap::get call site: 00034 Orientation::locate_orientation_entry
59 818 tga::TgaDecoder::new call site: 00818 Header::from_reader
52 881 DxtDecoder::new call site: 00881 BmpDecoder::read_metadata
51 133 TgaDecoder::expand_color_map call site: 00133 ImageReader::into_dimensions
37 1267 ico::IcoDecoder::new call site: 01267 register_decoding_hook
35 1604 ico::IcoDecoder::new call site: 01604 ImageDecoder::set_limits
31 1235 ico::IcoDecoder::new call site: 01235 Enlargeable::clamp_from

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 105
src/codecs/dds.rs 11
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 40
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 11
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11

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 1482 89.1%
gold [1:9] 20 1.20%
yellow [10:29] 7 0.42%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 154 9.26%
All colors 1663 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
493 784 io::Result::len call site: 00784 BmpDecoder::read_metadata
192 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
177 324 ImageDecoder::total_bytes call site: 00324 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
125 1448 HdrDecoder::with_strictness call site: 01448 Delay::closest_bounded_fraction
87 0 EP call site: 00000 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
30 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
24 1576 utils::check_dimension_overflow call site: 01576 FarbfeldReader::new
23 278 crate::utils::check_dimension_overflow call site: 00278 ExtendedColorType::color_type
20 1278 ImageReader::make_decoder call site: 01278
18 1644 ImageReader::set_format call site: 01644 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
89
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1198 72.0%
gold [1:9] 73 4.38%
yellow [10:29] 26 1.56%
greenyellow [30:49] 5 0.30%
lawngreen 50+ 361 21.7%
All colors 1663 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
220 278 crate::utils::check_dimension_overflow call site: 00278 tests::test_image_outside_image_no_wrap_around
117 1068 BmpDecoder::read_palette call site: 01068 vertical_sample
113 519 Limits::check_dimensions call site: 00519 FarbfeldDecoder::new
92 798 R::read_exact_vec call site: 00798 BmpDecoder::read_metadata
69 15 ColorMap::get call site: 00015 Orientation::locate_orientation_entry
56 1469 gcd call site: 01469 Delay::closest_bounded_fraction
46 720 Header::from_reader call site: 00720 ImageReader::into_dimensions
39 128 ImageBuffer::inner_pixels call site: 00128 BmpDecoder::num_channels
39 1576 utils::check_dimension_overflow call site: 01576 FarbfeldReader::new
30 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
28 180 TgaDecoder::expand_color_map call site: 00180 Orientation::locate_orientation_entry
25 683 err_unknown_color_type call site: 00683 Header::from_reader

Runtime coverage analysis

Covered functions
1544
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 107
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1267 73.2%
gold [1:9] 73 4.21%
yellow [10:29] 26 1.50%
greenyellow [30:49] 5 0.28%
lawngreen 50+ 359 20.7%
All colors 1730 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
220 307 crate::utils::check_dimension_overflow call site: 00307 tests::test_image_outside_image_no_wrap_around
126 1603 ImageReader::require_format call site: 01603 Delay::closest_bounded_fraction
117 1097 BmpDecoder::read_palette call site: 01097 vertical_sample
113 548 Limits::check_dimensions call site: 00548 FarbfeldDecoder::new
92 827 R::read_exact_vec call site: 00827 BmpDecoder::read_metadata
81 92 ImageBuffer::inner_pixels call site: 00092 Orientation::locate_orientation_entry
46 749 Header::from_reader call site: 00749 ImageReader::into_dimensions
39 1561 utils::check_dimension_overflow call site: 01561 FarbfeldReader::new
33 37 gcd call site: 00037 ImageReader::make_decoder
33 1477 HdrDecoder::with_strictness call site: 01477 OpenExrDecoder::with_alpha_preference
30 274 ImageReader::make_decoder call site: 00274 FarbfeldReader::new
28 209 TgaDecoder::expand_color_map call site: 00209 Orientation::locate_orientation_entry

Runtime coverage analysis

Covered functions
1544
Functions that are reachable but not covered
6
Reachable functions
8
Percentage of reachable functions covered
25.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_exr.rs 20
src/codecs/openexr.rs 36
src/hooks.rs 14
src/images/buffer.rs 14
src/error.rs 105
src/images/buffer_par.rs 1
src/animation.rs 18
src/traits.rs 10
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 40
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/codecs/farbfeld.rs 9
src/color.rs 19
src/metadata.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 11
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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 1293 73.5%
gold [1:9] 73 4.15%
yellow [10:29] 26 1.47%
greenyellow [30:49] 5 0.28%
lawngreen 50+ 361 20.5%
All colors 1758 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
220 281 crate::utils::check_dimension_overflow call site: 00281 tests::test_image_outside_image_no_wrap_around
117 1071 BmpDecoder::read_palette call site: 01071 vertical_sample
116 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
113 522 Limits::check_dimensions call site: 00522 FarbfeldDecoder::new
92 801 R::read_exact_vec call site: 00801 BmpDecoder::read_metadata
68 21 ColorMap::get call site: 00021 Orientation::locate_orientation_entry
56 1472 gcd call site: 01472 Delay::closest_bounded_fraction
46 723 Header::from_reader call site: 00723 ImageReader::into_dimensions
39 133 ImageBuffer::inner_pixels call site: 00133 BmpDecoder::num_channels
39 1579 utils::check_dimension_overflow call site: 01579 FarbfeldReader::new
30 248 ImageReader::make_decoder call site: 00248 FarbfeldReader::new
26 185 TgaDecoder::expand_color_map call site: 00185 Orientation::locate_orientation_entry

Runtime coverage analysis

Covered functions
1544
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 59
src/hooks.rs 14
src/error.rs 107
src/codecs/avif/encoder.rs 5
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 24
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
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', 'ImageBuffer::inner_pixels_mut', 'gcd', 'Limits::check_dimensions', 'jpeg::JpegDecoder::new', 'ImageReader::set_format']

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', 'zune_core::options::DecoderOptions::default', 'ImageBuffer::image_buffer_len', 'BmpDecoder::read_palette', 'R::read_exact_vec', 'bmp::BmpDecoder::new', 'Limits::check_dimensions', 'check_for_overflow']

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=['dds::DdsDecoder::new', 'ImageReader::make_decoder', 'crate::utils::check_dimension_overflow', 'zune_core::options::DecoderOptions::default', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'R::read_exact_vec', 'ImageReader::require_format']

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', 'Limits::check_dimensions', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'ImageReader::require_format', 'FarbfeldReader::new', 'ImageReader::set_format']

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=['ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'Ratio::new', 'Limits::check_dimensions', 'ImageReader::require_format', 'ImageReader::set_format', 'Limits::check_support']

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', 'hdr::HdrDecoder::new', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'ImageReader::require_format', 'ImageError::from_tiff_decode', 'ImageReader::set_format']

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', 'Limits::check_dimensions', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'BmpDecoder::read_palette', 'R::read_exact_vec', 'check_for_overflow']

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=['ImageReader::make_decoder', 'ImageBuffer::inner_pixels', 'Ratio::new', 'Limits::check_dimensions', 'ImageBuffer::from_raw', 'ImageReader::require_format', 'ImageReader::set_format']

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=['hdr::HdrDecoder::new', 'TgaDecoder::expand_color_map', 'ImageDecoder::total_bytes', 'avif::AvifDecoder::new', 'FarbfeldDecoder::new', 'ColorMap::get', 'tga::TgaDecoder::new', 'DxtDecoder::new', 'ico::IcoDecoder::new']

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=['io::Result::len', 'zune_core::options::DecoderOptions::default', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'HdrDecoder::with_strictness', 'Limits::check_dimensions', 'ImageReader::make_decoder', 'utils::check_dimension_overflow', 'crate::utils::check_dimension_overflow']

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=['crate::utils::check_dimension_overflow', 'BmpDecoder::read_palette', 'Limits::check_dimensions', 'R::read_exact_vec', 'ColorMap::get', 'gcd', 'Header::from_reader', 'ImageBuffer::inner_pixels', 'utils::check_dimension_overflow', 'ImageReader::make_decoder']

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=['crate::utils::check_dimension_overflow', 'ImageReader::require_format', 'BmpDecoder::read_palette', 'Limits::check_dimensions', 'R::read_exact_vec', 'ImageBuffer::inner_pixels', 'Header::from_reader', 'utils::check_dimension_overflow', 'gcd', 'HdrDecoder::with_strictness']

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=['crate::utils::check_dimension_overflow', 'BmpDecoder::read_palette', 'ImageReader::require_format', 'Limits::check_dimensions', 'R::read_exact_vec', 'ColorMap::get', 'gcd', 'Header::from_reader', 'ImageBuffer::inner_pixels', 'utils::check_dimension_overflow']

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

Directories in report

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

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
fuzzer_script_bmp fuzzerLogFile-fuzzer_script_bmp.data fuzzerLogFile-fuzzer_script_bmp.data.yaml fuzzer_script_bmp.covreport
fuzzer_script_pnm fuzzerLogFile-fuzzer_script_pnm.data fuzzerLogFile-fuzzer_script_pnm.data.yaml fuzzer_script_pnm.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_tiff fuzzerLogFile-fuzzer_script_tiff.data fuzzerLogFile-fuzzer_script_tiff.data.yaml fuzzer_script_tiff.covreport
fuzzer_script_ico fuzzerLogFile-fuzzer_script_ico.data fuzzerLogFile-fuzzer_script_ico.data.yaml fuzzer_script_ico.covreport
roundtrip_webp fuzzerLogFile-roundtrip_webp.data fuzzerLogFile-roundtrip_webp.data.yaml roundtrip_webp.covreport
fuzzer_script_tga fuzzerLogFile-fuzzer_script_tga.data fuzzerLogFile-fuzzer_script_tga.data.yaml fuzzer_script_tga.covreport
fuzzer_script_hdr fuzzerLogFile-fuzzer_script_hdr.data fuzzerLogFile-fuzzer_script_hdr.data.yaml fuzzer_script_hdr.covreport
fuzzer_script_jpeg fuzzerLogFile-fuzzer_script_jpeg.data fuzzerLogFile-fuzzer_script_jpeg.data.yaml fuzzer_script_webp.covreport , fuzzer_script_bmp.covreport , fuzzer_script_tga.covreport , fuzzer_script_gif.covreport , fuzzer_script_pnm.covreport , fuzzer_script_tiff.covreport , fuzzer_script_ico.covreport , roundtrip_webp.covreport , fuzzer_script_hdr.covreport , fuzzer_script_png.covreport
fuzzer_script_exr fuzzerLogFile-fuzzer_script_exr.data fuzzerLogFile-fuzzer_script_exr.data.yaml fuzzer_script_webp.covreport , fuzzer_script_bmp.covreport , fuzzer_script_tga.covreport , fuzzer_script_gif.covreport , fuzzer_script_pnm.covreport , fuzzer_script_tiff.covreport , fuzzer_script_ico.covreport , roundtrip_webp.covreport , fuzzer_script_hdr.covreport , fuzzer_script_png.covreport
fuzzer_script_guess fuzzerLogFile-fuzzer_script_guess.data fuzzerLogFile-fuzzer_script_guess.data.yaml fuzzer_script_webp.covreport , fuzzer_script_bmp.covreport , fuzzer_script_tga.covreport , fuzzer_script_gif.covreport , fuzzer_script_pnm.covreport , fuzzer_script_tiff.covreport , fuzzer_script_ico.covreport , roundtrip_webp.covreport , fuzzer_script_hdr.covreport , fuzzer_script_png.covreport