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

Project overview: image-rs

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
0.0%
5 / 1452
Cyclomatic complexity statically reachable by fuzzers
1.0%
11 / 1996
Runtime code coverage of functions
37.0%
538 / 1452

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 1533 97.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 36 2.29%
All colors 1569 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
632 520 tiff::TiffDecoder::new call site: 00520 BmpDecoder::read_metadata
340 1159 ImageReader::make_decoder call site: 01159 HdrDecoder::with_strictness
231 65 ImageBuffer::inner_pixels_mut call site: 00065 tests::test_image_outside_image_no_wrap_around
74 297 Box::read_image call site: 00297 TgaDecoder::expand_color_map
54 427 ImageReader::make_decoder call site: 00427 ImageReader::into_dimensions
47 8 ImageReader::make_decoder call site: 00008 TgaDecoder::expand_color_map
36 389 Limits::check_dimensions call site: 00389
22 1500 pcx::PCXDecoder::new call site: 01500
20 1548 ImageReader::set_format call site: 01548 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
13 1534 ImageDecoder::set_limits call site: 01534 TgaDecoder::expand_color_map
12 494 jpeg::JpegDecoder::new call site: 00494

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 16
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 1388 88.4%
gold [1:9] 40 2.54%
yellow [10:29] 13 0.82%
greenyellow [30:49] 14 0.89%
lawngreen 50+ 114 7.26%
All colors 1569 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 1171 ImageReader::make_decoder call site: 01171 HdrDecoder::with_strictness
311 60 ImageBuffer::image_buffer_len call site: 00060 tests::test_image_outside_image_no_wrap_around
181 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
109 973 BmpDecoder::read_palette call site: 00973 vertical_sample
84 389 Limits::check_dimensions call site: 00389 ImageReader::into_dimensions
82 669 R::read_exact_vec call site: 00669 Header::from_reader
47 1105 bmp::BmpDecoder::new call site: 01105 ImageReader::make_decoder
41 919 BmpDecoder::read_metadata call site: 00919 FarbfeldReader::seek
35 20 Limits::default call site: 00020 TgaDecoder::expand_color_map
24 1523 ImageReader::require_format call site: 01523 ImageDecoder::set_limits
22 794 check_for_overflow call site: 00794
20 1548 ImageReader::set_format call site: 01548 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 16
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_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 1495 95.2%
gold [1:9] 10 0.63%
yellow [10:29] 3 0.19%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 61 3.88%
All colors 1569 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 733 crate::utils::check_dimension_overflow call site: 00733 BmpDecoder::read_metadata
311 60 ImageBuffer::image_buffer_len call site: 00060 tests::test_image_outside_image_no_wrap_around
239 1153 ImageReader::make_decoder call site: 01153 HdrDecoder::with_strictness
181 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
84 389 Limits::check_dimensions call site: 00389 ImageReader::into_dimensions
52 1457 pnm::PnmDecoder::new call site: 01457 FarbfeldReader::new
35 20 Limits::default call site: 00020 TgaDecoder::expand_color_map
25 692 dds::DdsDecoder::new call site: 00692 DX10Header::validate
24 1523 ImageReader::require_format call site: 01523 ImageDecoder::set_limits
22 669 R::read_exact_vec call site: 00669 Header::from_reader
20 1548 ImageReader::set_format call site: 01548 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 16
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 1573 97.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 34 2.11%
All colors 1607 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 735 dds::DdsDecoder::new call site: 00735 BmpDecoder::read_metadata
345 31 ImageBuffer::inner_pixels call site: 00031 tests::test_image_outside_image_no_wrap_around
293 1159 ImageReader::make_decoder call site: 01159 HdrDecoder::with_strictness
227 494 ImageReader::make_decoder call site: 00494 Header::from_reader
98 394 Limits::check_dimensions call site: 00394 TgaDecoder::expand_color_map
65 1453 pnm::PnmDecoder::new call site: 01453 FarbfeldReader::new
31 1555 ImageBuffer::from_raw call site: 01555 Header::write_to
30 1519 ImageReader::require_format call site: 01519 ImageDecoder::set_limits
19 1587 ImageReader::set_format call site: 01587 ImageDecoder::set_limits
16 377 Limits::check_support call site: 00377 Limits::check_dimensions
9 20 ImageBuffer::image_buffer_len call site: 00020
8 1149 ImageReader::make_decoder call site: 01149

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 16
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_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 1388 88.4%
gold [1:9] 23 1.46%
yellow [10:29] 4 0.25%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 154 9.81%
All colors 1569 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 733 crate::utils::check_dimension_overflow call site: 00733 BmpDecoder::read_metadata
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
197 474 zune_core::options::DecoderOptions::default call site: 00474 Header::from_reader
120 1322 HdrDecoder::with_strictness call site: 01322 Delay::closest_bounded_fraction
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
60 1445 utils::check_dimension_overflow call site: 01445 FarbfeldReader::new
58 389 Limits::check_dimensions call site: 00389 PCXReader::read_to_end
57 673 tga::TgaDecoder::new call site: 00673 Header::from_reader
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
20 1153 ImageReader::make_decoder call site: 01153
20 1548 ImageReader::set_format call site: 01548 ImageDecoder::set_limits
15 1507 ImageReader::make_decoder call site: 01507

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 16
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 1368 87.1%
gold [1:9] 37 2.35%
yellow [10:29] 18 1.14%
greenyellow [30:49] 7 0.44%
lawngreen 50+ 139 8.85%
All colors 1569 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 1173 ImageReader::make_decoder call site: 01173 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
197 458 ::std::io::Result::channel_count call site: 00458 Header::from_reader
109 973 BmpDecoder::read_palette call site: 00973 vertical_sample
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
86 669 R::read_exact_vec call site: 00669 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 919 BmpDecoder::read_metadata call site: 00919 FarbfeldReader::seek
37 1485 FarbfeldReader::new call site: 01485 Enlargeable::clamp_from
22 794 check_for_overflow call site: 00794
21 1107 ImageReader::make_decoder call site: 01107 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 16
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.6%
gold [1:9] 0 0.0%
yellow [10:29] 5 0.31%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 16 1.01%
All colors 1569 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
694 458 ::std::io::Result::channel_count call site: 00458 BmpDecoder::read_metadata
327 1157 ImageReader::make_decoder call site: 01157 HdrDecoder::with_strictness
308 60 ImageBuffer::image_buffer_len call site: 00060 tests::test_image_outside_image_no_wrap_around
60 389 Limits::check_dimensions call site: 00389 PCXReader::read_to_end
47 8 ImageReader::make_decoder call site: 00008 TgaDecoder::expand_color_map
37 1485 FarbfeldReader::new call site: 01485 Enlargeable::clamp_from
24 1523 ImageReader::require_format call site: 01523 ImageDecoder::set_limits
20 1548 ImageReader::set_format call site: 01548 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
7 0 EP call site: 00000 ImageReader::make_decoder
5 450 ColorType::channel_count call site: 00450 ImageReader::into_dimensions
2 1153 ImageReader::make_decoder call site: 01153

Runtime coverage analysis

Covered functions
311
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 16
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_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 1524 97.1%
gold [1:9] 14 0.89%
yellow [10:29] 5 0.31%
greenyellow [30:49] 2 0.12%
lawngreen 50+ 24 1.52%
All colors 1569 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 576 err_unknown_color_type call site: 00576 BmpDecoder::read_metadata
357 1165 ImageReader::make_decoder call site: 01165 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
115 389 Limits::check_dimensions call site: 00389 TgaDecoder::expand_color_map
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
24 1523 ImageReader::require_format call site: 01523 ImageDecoder::set_limits
23 548 ImageError::from_tiff_decode call site: 00548 TgaDecoder::expand_color_map
20 1548 ImageReader::set_format call site: 01548 ImageDecoder::set_limits
18 506 ImageReader::make_decoder call site: 00506 TgaDecoder::expand_color_map
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
10 1153 ImageReader::make_decoder call site: 01153

Runtime coverage analysis

Covered functions
558
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 16
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 1531 97.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 38 2.42%
All colors 1569 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 739 dds::DdsDecoder::new call site: 00739 BmpDecoder::read_metadata
293 1163 ImageReader::make_decoder call site: 01163 HdrDecoder::with_strictness
227 498 ImageReader::make_decoder call site: 00498 Header::from_reader
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
107 389 Limits::check_dimensions call site: 00389 TgaDecoder::expand_color_map
90 60 ImageBuffer::image_buffer_len call site: 00060 TgaDecoder::expand_color_map
65 1457 pnm::PnmDecoder::new call site: 01457 FarbfeldReader::new
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
20 1548 ImageReader::set_format call site: 01548 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
13 1534 ImageDecoder::set_limits call site: 01534 TgaDecoder::expand_color_map
8 151 ImageDecoder::total_bytes call site: 00151 Enlargeable::clamp_from

Runtime coverage analysis

Covered functions
312
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 16
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 1531 97.5%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 38 2.42%
All colors 1569 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 558 tiff::TiffDecoder::new call site: 00558 BmpDecoder::read_metadata
309 1161 ImageReader::make_decoder call site: 01161 HdrDecoder::with_strictness
200 171 ImageDecoder::total_bytes call site: 00171 tests::test_image_outside_image_no_wrap_around
118 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 1479 FarbfeldReader::new call site: 01479 Enlargeable::clamp_from
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
41 389 Limits::check_dimensions call site: 00389
24 1523 ImageReader::require_format call site: 01523 ImageDecoder::set_limits
16 372 Limits::check_support call site: 00372 Limits::check_dimensions
12 1556 GifDecoder::new call site: 01556 ImageDecoder::set_limits
8 151 ImageDecoder::total_bytes call site: 00151 Enlargeable::clamp_from

Runtime coverage analysis

Covered functions
207
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 16
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 1335 83.3%
gold [1:9] 33 2.06%
yellow [10:29] 35 2.18%
greenyellow [30:49] 29 1.81%
lawngreen 50+ 169 10.5%
All colors 1601 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 823 TgaDecoder::expand_color_map call site: 00823 BmpDecoder::read_bitmap_info_header
283 1183 hdr::HdrDecoder::new call site: 01183 HdrMetadata::update_header_info
201 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 692 tga::TgaDecoder::new call site: 00692 Header::from_reader
51 750 DxtDecoder::new call site: 00750 BmpDecoder::read_metadata
36 1512 ico::IcoDecoder::new call site: 01512 ImageDecoder::set_limits
24 1468 farbfeld::FarbfeldDecoder::new call site: 01468 F::a::r::b::f::e::l::d::R::e::a::d::e::r::::::::n::e::w::read_dimm
18 1493 FarbfeldReader::new call site: 01493 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 16
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_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 1572 96.5%
gold [1:9] 0 0.0%
yellow [10:29] 48 2.94%
greenyellow [30:49] 6 0.36%
lawngreen 50+ 2 0.12%
All colors 1628 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 692 to_image_err call site: 00692 BmpDecoder::read_metadata
205 483 ::std::io::Result::channel_count call site: 00483 Header::from_reader
135 1377 OpenExrDecoder::with_alpha_preference call site: 01377 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 1586 roundtrip call site: 01586 write_buffer
31 1519 ImageDecoder::set_limits call site: 01519 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
1283
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 16
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 1239 76.0%
gold [1:9] 73 4.47%
yellow [10:29] 67 4.11%
greenyellow [30:49] 10 0.61%
lawngreen 50+ 241 14.7%
All colors 1630 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
197 176 ImageDecoder::total_bytes call site: 00176 tests::test_image_outside_image_no_wrap_around
109 978 BmpDecoder::read_palette call site: 00978 vertical_sample
85 70 ImageBuffer::inner_pixels_mut call site: 00070 TgaDecoder::expand_color_map
79 581 err_unknown_color_type call site: 00581 Header::from_reader
48 1340 OpenExrDecoder::with_alpha_preference call site: 01340 Delay::closest_bounded_fraction
45 1402 HeaderReader::read_magic_constant call site: 01402 PnmDecoder::read_graymap_header
41 13 ImageReader::make_decoder call site: 00013 Enlargeable::clamp_from
41 924 BmpDecoder::read_metadata call site: 00924 FarbfeldReader::seek
38 463 ::std::io::Result::channel_count call site: 00463 TgaDecoder::expand_color_map
36 394 Limits::check_dimensions call site: 00394
30 856 BmpDecoder::read_bitmap_info_header call site: 00856
25 1464 ImageReader::make_decoder call site: 01464 FarbfeldReader::new

Runtime coverage analysis

Covered functions
2306
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 16
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', 'ImageBuffer::inner_pixels_mut', 'Box::read_image', 'Limits::check_dimensions', 'pcx::PCXDecoder::new', 'ImageReader::set_format', 'Limits::check_support']

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

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

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', 'ImageBuffer::inner_pixels', 'ImageReader::make_decoder', 'Limits::check_dimensions', 'pnm::PnmDecoder::new', 'ImageBuffer::from_raw', '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', 'ImageDecoder::total_bytes', 'zune_core::options::DecoderOptions::default', '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_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', 'ImageDecoder::total_bytes', '::std::io::Result::channel_count', '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', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'FarbfeldReader::new', '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', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'Limits::check_dimensions', 'ImageBuffer::image_buffer_len', 'ImageReader::require_format', 'ImageError::from_tiff_decode', '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=['dds::DdsDecoder::new', 'ImageReader::make_decoder', 'ImageDecoder::total_bytes', 'Limits::check_dimensions', 'ImageBuffer::image_buffer_len', 'pnm::PnmDecoder::new', 'ImageReader::set_format', 'Limits::check_support']

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_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_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=['ImageDecoder::total_bytes', 'BmpDecoder::read_palette', 'ImageBuffer::inner_pixels_mut', 'err_unknown_color_type', 'OpenExrDecoder::with_alpha_preference', 'HeaderReader::read_magic_constant', 'ImageReader::make_decoder', 'BmpDecoder::read_metadata', '::std::io::Result::channel_count', 'Limits::check_dimensions']

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

Directories in report

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

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
roundtrip_webp fuzzerLogFile-roundtrip_webp.data fuzzerLogFile-roundtrip_webp.data.yaml roundtrip_webp.covreport
fuzzer_script_hdr fuzzerLogFile-fuzzer_script_hdr.data fuzzerLogFile-fuzzer_script_hdr.data.yaml fuzzer_script_hdr.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_tiff fuzzerLogFile-fuzzer_script_tiff.data fuzzerLogFile-fuzzer_script_tiff.data.yaml fuzzer_script_tiff.covreport
fuzzer_script_webp fuzzerLogFile-fuzzer_script_webp.data fuzzerLogFile-fuzzer_script_webp.data.yaml fuzzer_script_webp.covreport
fuzzer_script_jpeg fuzzerLogFile-fuzzer_script_jpeg.data fuzzerLogFile-fuzzer_script_jpeg.data.yaml fuzzer_script_jpeg.covreport
fuzzer_script_tga fuzzerLogFile-fuzzer_script_tga.data fuzzerLogFile-fuzzer_script_tga.data.yaml fuzzer_script_tga.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