Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

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 1786 98.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 24 1.32%
All colors 1810 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
802 614 ImageReader::make_decoder call site: 00614 BmpDecoder::read_metadata
267 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
216 1423 ImageReader::make_decoder call site: 01423 BmpDecoder::read_headers
159 148 ImageBuffer::inner_pixels_mut call site: 00148 Orientation::locate_orientation_entry
149 1641 gcd call site: 01641 BmpDecoder::read_headers
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
36 576 Limits::check_dimensions call site: 00576
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
9 2 image::load_from_memory_with_format call site: 00002
6 12 image::load_from_memory_with_format call site: 00012
4 142 ImageBuffer::image_buffer_len call site: 00142

Runtime coverage analysis

Covered functions
176
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_gif.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1753 96.8%
gold [1:9] 5 0.27%
yellow [10:29] 3 0.16%
greenyellow [30:49] 5 0.27%
lawngreen 50+ 44 2.43%
All colors 1810 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
522 894 Limits::default call site: 00894 BmpDecoder::read_metadata
317 576 Limits::check_dimensions call site: 00576 Header::from_reader
277 1417 ImageReader::make_decoder call site: 01417 BmpDecoder::read_headers
244 331 crate::utils::check_dimension_overflow call site: 00331 tests::test_image_outside_image_no_wrap_around
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
96 41 crate::LimitSupport::default call site: 00041 ImageReader::make_decoder
20 308 ImageReader::make_decoder call site: 00308 parse_header
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
18 1761 pnm::PnmDecoder::new call site: 01761 parse_header
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
9 2 image::load_from_memory_with_format call site: 00002
9 1717 pnm::PnmDecoder::new call site: 01717 PnmDecoder::read_graymap_header

Runtime coverage analysis

Covered functions
175
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_pnm.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1531 84.5%
gold [1:9] 37 2.04%
yellow [10:29] 22 1.21%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 220 12.1%
All colors 1810 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 576 Limits::check_dimensions call site: 00576 Header::from_reader
267 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
173 1433 ImageReader::make_decoder call site: 01433 BmpDecoder::read_headers
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
161 1153 BmpDecoder::read_palette call site: 01153 horizontal_sample
158 1632 BmpDecoder::read_headers call site: 01632 BmpDecoder::read_headers
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
68 1348 bmp::BmpDecoder::new_with_spec_compliance call site: 01348 ImageReader::make_decoder
21 960 check_for_overflow call site: 00960 ColorMap::get
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
14 1417 ImageReader::make_decoder call site: 01417

Runtime coverage analysis

Covered functions
134
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_bmp.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1813 98.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 30 1.62%
All colors 1843 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
779 606 ImageReader::make_decoder call site: 00606 BmpDecoder::read_metadata
258 274 ImageReader::make_decoder call site: 00274 tests::test_image_outside_image_no_wrap_around
204 1396 ImageReader::make_decoder call site: 01396 BmpDecoder::read_headers
150 1601 Ratio::new call site: 01601 BmpDecoder::read_headers
127 146 ImageBuffer::inner_pixels call site: 00146 Orientation::locate_orientation_entry
106 0 EP call site: 00000 ImageReader::make_decoder
54 550 Limits::check_dimensions call site: 00550
33 111 ImageBuffer::image_buffer_len call site: 00111 ImageReader::into_dimensions
29 1753 ImageReader::require_format call site: 01753 ImageDecoder::set_limits
22 1789 ImageBuffer::from_raw call site: 01789 Header::write_to
19 1823 ImageReader::set_format call site: 01823 ImageDecoder::set_limits
16 533 Limits::check_support call site: 00533 Limits::check_dimensions

Runtime coverage analysis

Covered functions
147
Functions that are reachable but not covered
7
Reachable functions
17
Percentage of reachable functions covered
58.82%
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 61
src/color.rs 17
src/codecs/avif/encoder.rs 9
src/io/image_reader_type.rs 38
src/hooks.rs 108
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 16
src/images/buffer_par.rs 1
src/codecs/hdr/encoder.rs 2
src/io/format.rs 2
src/codecs/farbfeld.rs 13
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 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 6
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 8
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
src/images/dynimage.rs 2
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 1784 98.5%
gold [1:9] 5 0.27%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 1.16%
All colors 1810 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
669 747 ColorType::channel_count call site: 00747 BmpDecoder::read_metadata
342 1421 ImageReader::make_decoder call site: 01421 BmpDecoder::read_headers
249 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
99 639 FarbfeldDecoder::new call site: 00639 TgaDecoder::expand_color_map
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
62 576 Limits::check_dimensions call site: 00576 FarbfeldDecoder::new
26 1764 farbfeld::FarbfeldDecoder::new call site: 01764
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
16 559 ImageReader::make_decoder call site: 00559 Limits::check_dimensions
9 2 image::load_from_memory_with_format call site: 00002

Runtime coverage analysis

Covered functions
362
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_png.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1787 98.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 23 1.27%
All colors 1810 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 822 tga::TgaDecoder::new call site: 00822 BmpDecoder::read_metadata
365 1425 ImageReader::make_decoder call site: 01425 BmpDecoder::read_headers
267 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
194 627 jpeg::JpegDecoder::new_with_spec_compliance call site: 00627 Header::from_reader
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
44 576 Limits::check_dimensions call site: 00576
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
9 2 image::load_from_memory_with_format call site: 00002
6 12 image::load_from_memory_with_format call site: 00012
6 1417 ImageReader::make_decoder call site: 01417

Runtime coverage analysis

Covered functions
263
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_jpeg.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1789 98.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 1.16%
All colors 1810 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
787 629 ImageReader::make_decoder call site: 00629 BmpDecoder::read_metadata
267 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
212 1427 ImageReader::make_decoder call site: 01427 BmpDecoder::read_headers
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
150 1640 Ratio::new call site: 01640 BmpDecoder::read_headers
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
51 576 Limits::check_dimensions call site: 00576
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
9 2 image::load_from_memory_with_format call site: 00002
8 1417 ImageReader::make_decoder call site: 01417
6 12 image::load_from_memory_with_format call site: 00012

Runtime coverage analysis

Covered functions
337
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_webp.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1751 96.7%
gold [1:9] 10 0.55%
yellow [10:29] 14 0.77%
greenyellow [30:49] 5 0.27%
lawngreen 50+ 30 1.65%
All colors 1810 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
523 893 DecoderState::default call site: 00893 BmpDecoder::read_metadata
361 1429 ImageReader::make_decoder call site: 01429 BmpDecoder::read_headers
267 308 ImageReader::make_decoder call site: 00308 tests::test_image_outside_image_no_wrap_around
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
145 747 ColorType::channel_count call site: 00747 Header::from_reader
98 39 Limits::check_support call site: 00039 ImageReader::make_decoder
59 576 Limits::check_dimensions call site: 00576
48 690 err_unknown_color_type call site: 00690 TgaDecoder::expand_color_map
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits
17 1792 ImageReader::require_format call site: 01792 ImageDecoder::set_limits
13 637 ImageReader::make_decoder call site: 00637 TgaDecoder::expand_color_map
10 1417 ImageReader::make_decoder call site: 01417

Runtime coverage analysis

Covered functions
769
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_tiff.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1508 83.3%
gold [1:9] 33 1.82%
yellow [10:29] 25 1.38%
greenyellow [30:49] 6 0.33%
lawngreen 50+ 238 13.1%
All colors 1810 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
195 374 ImageDecoder::total_bytes call site: 00374 tests::test_image_outside_image_no_wrap_around
171 1435 ImageReader::make_decoder call site: 01435 BmpDecoder::read_headers
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
161 1153 BmpDecoder::read_palette call site: 01153 horizontal_sample
143 747 ColorType::channel_count call site: 00747 Header::from_reader
131 1632 BmpDecoder::read_headers call site: 01632 BmpDecoder::read_headers
99 639 FarbfeldDecoder::new call site: 00639 TgaDecoder::expand_color_map
95 42 ImageDecoder::set_limits call site: 00042 ImageReader::make_decoder
62 576 Limits::check_dimensions call site: 00576 FarbfeldDecoder::new
48 308 ImageReader::make_decoder call site: 00308 parse_header
29 1350 ImageReader::make_decoder call site: 01350 TgaDecoder::expand_color_map
26 1764 farbfeld::FarbfeldDecoder::new call site: 01764

Runtime coverage analysis

Covered functions
392
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_ico.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
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 1608 87.0%
gold [1:9] 45 2.43%
yellow [10:29] 12 0.64%
greenyellow [30:49] 14 0.75%
lawngreen 50+ 168 9.09%
All colors 1847 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
828 958 TgaDecoder::expand_color_map call site: 00958 BmpDecoder::read_metadata_impl
168 361 ImageDecoder::total_bytes call site: 00361 tests::test_image_outside_image_no_wrap_around
156 544 avif::AvifDecoder::new call site: 00544 TgaDecoder::expand_color_map
86 41 ColorMap::get call site: 00041 Orientation::locate_orientation_entry
74 863 tga::TgaDecoder::new call site: 00863 BmpDecoder::read_metadata
63 274 TgaDecoder::expand_color_map call site: 00274 TgaDecoder::expand_color_map
52 157 TgaDecoder::expand_color_map call site: 00157 ImageReader::into_dimensions
40 724 tiff::TiffDecoder::new call site: 00724 ImageReader::into_dimensions
27 226 TgaDecoder::expand_color_map call site: 00226 Orientation::locate_orientation_entry
22 701 tiff::TiffDecoder::new call site: 00701 TgaDecoder::expand_color_map
19 128 TgaDecoder::expand_color_map call site: 00128
11 348 ImageDecoder::total_bytes call site: 00348

Runtime coverage analysis

Covered functions
41
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/hooks.rs 107
src/codecs/tga/header.rs 5
src/images/flat.rs 2
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 36
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
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 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 6
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
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 1821 97.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 56 2.98%
All colors 1877 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
725 851 to_image_err call site: 00851 BmpDecoder::read_metadata
295 30 Frame::clone call site: 00030 Orientation::locate_orientation_entry
186 349 ImageDecoder::total_bytes call site: 00349 tests::test_image_outside_image_no_wrap_around
165 553 Limits::check_dimensions call site: 00553 TgaDecoder::expand_color_map
120 727 ColorType::channel_count call site: 00727 Header::from_reader
103 1641 OpenExrDecoder::with_alpha_preference call site: 01641 TgaDecoder::expand_color_map
51 1581 OpenExrDecoder::with_alpha_preference call site: 01581 Delay::closest_bounded_fraction
46 1826 roundtrip call site: 01826 write_buffer
35 1749 ImageDecoder::set_limits call site: 01749 BmpDecoder::read_bitmap_os2v2_header
20 8 OpenExrDecoder::with_alpha_preference call site: 00008 ImageReader::make_decoder
16 536 Limits::check_support call site: 00536 Limits::check_dimensions
14 1800 OpenExrDecoder::with_alpha_preference call site: 01800 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
1616
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 36
src/hooks.rs 107
src/codecs/bmp/decoder.rs 67
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 36
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/hdr/encoder.rs 2
src/color.rs 21
src/io/format.rs 2
src/codecs/farbfeld.rs 13
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 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 6
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
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 1628 89.9%
gold [1:9] 7 0.38%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 175 9.66%
All colors 1810 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
390 894 Limits::default call site: 00894 BmpDecoder::read_metadata
244 331 crate::utils::check_dimension_overflow call site: 00331 tests::test_image_outside_image_no_wrap_around
165 142 ImageBuffer::image_buffer_len call site: 00142 Orientation::locate_orientation_entry
160 576 Limits::check_dimensions call site: 00576 TgaDecoder::expand_color_map
146 1599 HdrDecoder::with_strictness call site: 01599 BmpDecoder::read_headers
124 1292 Self::len call site: 01292 BmpDecoder::read_metadata_impl
98 753 limit_string_len call site: 00753 Header::from_reader
96 41 crate::LimitSupport::default call site: 00041 ImageReader::make_decoder
34 859 io::Result::len call site: 00859
27 1748 utils::check_dimension_overflow call site: 01748 TgaDecoder::expand_color_map
20 308 ImageReader::make_decoder call site: 00308 parse_header
18 20 ImageReader::set_format call site: 00020 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
87
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_hdr.rs 2
src/images/dynimage.rs 2
src/hooks.rs 108
src/io/free_functions.rs 14
src/io/limits.rs 6
src/io/image_reader_type.rs 38
tests/limits_anim.rs 6
src/io/decoder.rs 10
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/animation.rs 18
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/avif/encoder.rs 5
src/codecs/hdr/encoder.rs 2
src/color.rs 17
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/hdr/decoder.rs 61
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
src/codecs/gif.rs 3

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 1391 71.0%
gold [1:9] 94 4.80%
yellow [10:29] 31 1.58%
greenyellow [30:49] 11 0.56%
lawngreen 50+ 430 21.9%
All colors 1957 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
183 374 ImageDecoder::total_bytes call site: 00374 tests::test_image_outside_image_no_wrap_around
161 1148 BmpDecoder::read_palette call site: 01148 horizontal_sample
153 148 ImageBuffer::inner_pixels_mut call site: 00148 Orientation::locate_orientation_entry
114 749 limit_string_len call site: 00749 Header::from_reader
78 59 Frame::clone call site: 00059 Orientation::locate_orientation_entry
67 1889 image::load_from_memory call site: 01889 Header::from_reader
46 695 err_unknown_color_type call site: 00695 TgaDecoder::expand_color_map
45 1695 HeaderReader::read_magic_constant call site: 01695 PnmDecoder::read_graymap_header
44 1636 gcd call site: 01636 Delay::closest_bounded_fraction
36 578 Limits::check_dimensions call site: 00578
36 1807 ColorType::channel_count call site: 01807 GifEncoder::set_repeat
29 1345 ImageReader::make_decoder call site: 01345 TgaDecoder::expand_color_map

Runtime coverage analysis

Covered functions
2680
Functions that are reachable but not covered
1
Reachable functions
2
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/fuzzer_script_guess.rs 2
src/images/dynimage.rs 4
src/hooks.rs 116
src/io/limits.rs 6
src/io/image_reader_type.rs 49
src/animation.rs 18
src/codecs/hdr/decoder.rs 61
src/color.rs 17
src/codecs/avif/encoder.rs 5
src/images/flat.rs 2
src/codecs/tga/decoder.rs 14
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/codecs/hdr/encoder.rs 2
src/io/format.rs 2
src/codecs/farbfeld.rs 13
src/utils/mod.rs 4
src/io/free_functions.rs 21
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 12
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/codecs/tiff.rs 29
src/codecs/tga/header.rs 5
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 67
src/imageops/sample.rs 43
src/math/rect.rs 9
src/codecs/ico/decoder.rs 18
src/codecs/pnm/decoder.rs 11
src/codecs/gif.rs 6
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=['ImageReader::make_decoder', 'ImageBuffer::inner_pixels_mut', 'gcd', 'Limits::check_support', 'Limits::check_dimensions', 'ImageReader::set_format', 'ImageReader::require_format', 'image::load_from_memory_with_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=['Limits::default', 'Limits::check_dimensions', 'ImageReader::make_decoder', 'crate::utils::check_dimension_overflow', 'ImageBuffer::image_buffer_len', 'crate::LimitSupport::default', 'ImageReader::set_format', 'pnm::PnmDecoder::new', 'ImageReader::require_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=['Limits::check_dimensions', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'BmpDecoder::read_palette', 'BmpDecoder::read_headers', 'Limits::check_support', 'bmp::BmpDecoder::new_with_spec_compliance', 'check_for_overflow', 'ImageReader::set_format']

fuzz/fuzzers/roundtrip_webp.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['ImageReader::make_decoder', 'Ratio::new', 'ImageBuffer::inner_pixels', 'Limits::check_dimensions', 'ImageBuffer::image_buffer_len', 'ImageReader::require_format', 'ImageBuffer::from_raw']

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

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=['tga::TgaDecoder::new', 'ImageReader::make_decoder', 'jpeg::JpegDecoder::new_with_spec_compliance', 'ImageBuffer::image_buffer_len', 'Limits::check_support', 'Limits::check_dimensions', 'ImageReader::set_format', 'ImageReader::require_format', 'image::load_from_memory_with_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_support', 'Limits::check_dimensions', 'ImageReader::set_format', 'ImageReader::require_format', 'image::load_from_memory_with_format']

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=['DecoderState::default', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'ColorType::channel_count', 'Limits::check_support', 'Limits::check_dimensions', 'err_unknown_color_type', 'ImageReader::set_format', 'ImageReader::require_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=['ImageDecoder::total_bytes', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'BmpDecoder::read_palette', 'ColorType::channel_count', 'BmpDecoder::read_headers', 'FarbfeldDecoder::new', 'ImageDecoder::set_limits', 'Limits::check_dimensions']

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', 'ImageDecoder::total_bytes', 'avif::AvifDecoder::new', 'ColorMap::get', 'tga::TgaDecoder::new', 'tiff::TiffDecoder::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', 'Frame::clone', 'ImageDecoder::total_bytes', 'Limits::check_dimensions', 'ColorType::channel_count', 'OpenExrDecoder::with_alpha_preference', 'roundtrip', 'ImageDecoder::set_limits']

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=['Limits::default', 'crate::utils::check_dimension_overflow', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'HdrDecoder::with_strictness', 'Self::len', 'limit_string_len', 'crate::LimitSupport::default', 'io::Result::len', 'utils::check_dimension_overflow']

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

Directories in report

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

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_pnm fuzzerLogFile-fuzzer_script_pnm.data fuzzerLogFile-fuzzer_script_pnm.data.yaml fuzzer_script_pnm.covreport
fuzzer_script_bmp fuzzerLogFile-fuzzer_script_bmp.data fuzzerLogFile-fuzzer_script_bmp.data.yaml fuzzer_script_bmp.covreport
roundtrip_webp fuzzerLogFile-roundtrip_webp.data fuzzerLogFile-roundtrip_webp.data.yaml roundtrip_webp.covreport
fuzzer_script_png fuzzerLogFile-fuzzer_script_png.data fuzzerLogFile-fuzzer_script_png.data.yaml fuzzer_script_png.covreport
fuzzer_script_jpeg fuzzerLogFile-fuzzer_script_jpeg.data fuzzerLogFile-fuzzer_script_jpeg.data.yaml fuzzer_script_jpeg.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
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_hdr fuzzerLogFile-fuzzer_script_hdr.data fuzzerLogFile-fuzzer_script_hdr.data.yaml fuzzer_script_hdr.covreport
fuzzer_script_guess fuzzerLogFile-fuzzer_script_guess.data fuzzerLogFile-fuzzer_script_guess.data.yaml fuzzer_script_guess.covreport