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

Project overview: image-rs

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
0.0%
5 / 1443
Cyclomatic complexity statically reachable by fuzzers
1.0%
11 / 1917
Runtime code coverage of functions
27.0%
394 / 1443

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_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 1377 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1377 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
1376 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
Functions that are reachable but not covered
8
Reachable functions
8
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.
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 33
src/images/buffer.rs 12
src/error.rs 98
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 12
src/io/limits.rs 5
src/io/free_functions.rs 11
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 3
src/codecs/dds.rs 13
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11

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 1318 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1318 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
1317 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
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.
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1318 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1318 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
1317 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
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.
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1318 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1318 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
1317 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
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.
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1318 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1318 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
1317 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
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.
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1310 96.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 46 3.39%
All colors 1356 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
493 329 ImageReader::make_decoder call site: 00329 BmpDecoder::read_metadata
290 911 ImageReader::make_decoder call site: 00911 HdrDecoder::with_strictness
98 229 Limits::check_dimensions call site: 00229 ImageReader::into_dimensions
77 31 ImageBuffer::inner_pixels call site: 00031 BmpDecoder::num_channels
69 142 ImageDecoder::total_bytes call site: 00142 read_until_ready
65 1202 pnm::PnmDecoder::new call site: 01202 FarbfeldReader::new
64 836 dds::DdsDecoder::new call site: 00836 BmpDecoder::read_metadata
31 1304 ImageBuffer::from_raw call site: 01304 Header::write_to
19 1279 ImageDecoder::set_limits call site: 01279 TgaDecoder::read_color_map
19 1336 ImageReader::set_format call site: 01336 ImageDecoder::set_limits
16 212 Limits::check_support call site: 00212 Limits::check_dimensions
12 109 ImageDecoder::total_bytes call site: 00109 ImageReader::into_decoder

Runtime coverage analysis

Covered functions
138
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 54
src/color.rs 9
src/codecs/avif/encoder.rs 8
src/io/image_reader_type.rs 33
src/error.rs 99
src/images/buffer.rs 14
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 3
src/codecs/dds.rs 13
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/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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_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 1280 97.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 38 2.88%
All colors 1318 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
549 355 tiff::TiffDecoder::new call site: 00355 BmpDecoder::read_metadata
337 911 ImageReader::make_decoder call site: 00911 HdrDecoder::with_strictness
72 8 ImageReader::make_decoder call site: 00008 ImageReader::into_dimensions
62 144 Box::read_image call site: 00144 read_until_ready
54 262 ImageReader::make_decoder call site: 00262 ImageReader::into_dimensions
53 90 ImageBuffer::inner_pixels_mut call site: 00090 BmpDecoder::num_channels
36 224 Limits::check_dimensions call site: 00224
22 1249 pcx::PCXDecoder::new call site: 01249
20 1297 ImageReader::set_format call site: 01297 ImageDecoder::set_limits
16 207 Limits::check_support call site: 00207 Limits::check_dimensions
13 1283 ImageDecoder::set_limits call site: 01283 TgaDecoder::read_color_map
12 329 jpeg::JpegDecoder::new call site: 00329

Runtime coverage analysis

Covered functions
167
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1117 84.7%
gold [1:9] 37 2.80%
yellow [10:29] 18 1.36%
greenyellow [30:49] 7 0.53%
lawngreen 50+ 139 10.5%
All colors 1318 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
346 925 ImageReader::make_decoder call site: 00925 HdrDecoder::with_strictness
121 293 ::std::io::Result::channel_count call site: 00293 ImageReader::into_dimensions
117 633 BmpDecoder::read_palette call site: 00633 vertical_sample
85 772 BmpDecoder::read_metadata call site: 00772 BmpDecoder::read_metadata
60 224 Limits::check_dimensions call site: 00224 PCXReader::read_to_end
50 85 ImageBuffer::image_buffer_len call site: 00085 BmpDecoder::num_channels
41 8 ImageReader::make_decoder call site: 00008 Enlargeable::clamp_from
41 582 BmpDecoder::read_metadata call site: 00582 FarbfeldReader::seek
34 172 avif::AvifDecoder::new call site: 00172 decoder_to_vec
30 137 ImageDecoder::total_bytes call site: 00137 read_until_ready
21 859 ImageReader::make_decoder call site: 00859 read_entries
20 1297 ImageReader::set_format call site: 01297 ImageDecoder::set_limits

Runtime coverage analysis

Covered functions
331
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1239 94.0%
gold [1:9] 10 0.75%
yellow [10:29] 3 0.22%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 66 5.00%
All colors 1318 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
356 436 Limits::default call site: 00436 BmpDecoder::read_metadata
236 905 ImageReader::make_decoder call site: 00905 HdrDecoder::with_strictness
126 309 zune_core::options::DecoderOptions::default call site: 00309 ImageReader::into_dimensions
84 224 Limits::check_dimensions call site: 00224 ImageReader::into_dimensions
70 834 crate::utils::check_dimension_overflow call site: 00834 BmpDecoder::read_metadata
69 137 ImageDecoder::total_bytes call site: 00137 read_until_ready
52 1206 pnm::PnmDecoder::new call site: 01206 FarbfeldReader::new
50 85 ImageBuffer::image_buffer_len call site: 00085 BmpDecoder::num_channels
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
23 793 dds::DdsDecoder::new call site: 00793 DX10Header::validate
20 1297 ImageReader::set_format call site: 01297 ImageDecoder::set_limits
14 209 crate::LimitSupport::default call site: 00209 Limits::check_dimensions

Runtime coverage analysis

Covered functions
144
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.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 1134 86.0%
gold [1:9] 40 3.03%
yellow [10:29] 13 0.98%
greenyellow [30:49] 14 1.06%
lawngreen 50+ 117 8.87%
All colors 1318 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
348 923 ImageReader::make_decoder call site: 00923 HdrDecoder::with_strictness
126 309 zune_core::options::DecoderOptions::default call site: 00309 ImageReader::into_dimensions
117 633 BmpDecoder::read_palette call site: 00633 vertical_sample
84 224 Limits::check_dimensions call site: 00224 ImageReader::into_dimensions
80 772 BmpDecoder::read_metadata call site: 00772 Header::from_reader
69 137 ImageDecoder::total_bytes call site: 00137 read_until_ready
50 85 ImageBuffer::image_buffer_len call site: 00085 BmpDecoder::num_channels
47 857 bmp::BmpDecoder::new call site: 00857 ImageReader::make_decoder
41 582 BmpDecoder::read_metadata call site: 00582 FarbfeldReader::seek
29 20 Limits::default call site: 00020 Enlargeable::clamp_from
20 1297 ImageReader::set_format call site: 01297 ImageDecoder::set_limits
16 905 ImageReader::make_decoder call site: 00905

Runtime coverage analysis

Covered functions
108
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
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 1379 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1379 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
1378 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
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.
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.rs 14
src/codecs/pnm/decoder.rs 11
src/codecs/gif.rs 9
tests/limits_anim.rs 6

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 1299 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 1299 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
1298 0 EP call site: 00000 BmpDecoder::read_metadata

Runtime coverage analysis

Covered functions
2
Functions that are reachable but not covered
7
Reachable functions
7
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.
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 98
src/io/limits.rs 5
src/codecs/bmp/decoder.rs 50
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 32
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
src/traits.rs 10
src/io/free_functions.rs 11
src/io/decoder.rs 11
src/codecs/tga/decoder.rs 3
src/codecs/dds.rs 13
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 54
src/codecs/tiff.rs 16
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/animation.rs 17
src/codecs/openexr.rs 14
src/codecs/pnm/decoder.rs 11
src/imageops/sample.rs 25
src/images/generic_image.rs 8

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 1150 87.2%
gold [1:9] 23 1.74%
yellow [10:29] 4 0.30%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 141 10.6%
All colors 1318 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
395 436 Limits::default call site: 00436 BmpDecoder::read_metadata
126 309 zune_core::options::DecoderOptions::default call site: 00309 ImageReader::into_dimensions
121 85 ImageBuffer::image_buffer_len call site: 00085 read_until_ready
120 1071 HdrDecoder::with_strictness call site: 01071 Delay::closest_bounded_fraction
70 834 crate::utils::check_dimension_overflow call site: 00834 BmpDecoder::read_metadata
60 20 Limits::default call site: 00020 ImageReader::into_dimensions
60 1194 utils::check_dimension_overflow call site: 01194 FarbfeldReader::new
58 224 Limits::check_dimensions call site: 00224 PCXReader::read_to_end
24 1272 ImageReader::require_format call site: 01272 ImageDecoder::set_limits
20 905 ImageReader::make_decoder call site: 00905
20 1297 ImageReader::set_format call site: 01297 ImageDecoder::set_limits
15 1256 ImageReader::make_decoder call site: 01256

Runtime coverage analysis

Covered functions
82
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 99
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 3
src/codecs/dds.rs 13
src/images/buffer.rs 12
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 30
src/color.rs 9
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 54
src/codecs/tiff.rs 16
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/images/generic_image.rs 8
src/animation.rs 17
src/utils/mod.rs 1
src/codecs/ico/decoder.rs 14
src/codecs/openexr.rs 14
src/codecs/pnm/decoder.rs 11
tests/limits_anim.rs 6
src/codecs/gif.rs 3

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_exr.rs

Dictionary

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


fuzz/fuzzers/fuzzer_script_webp.rs

Dictionary

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


fuzz/fuzzers/fuzzer_script_png.rs

Dictionary

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


fuzz/fuzzers/fuzzer_script_jpeg.rs

Dictionary

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


fuzz/fuzzers/fuzzer_script_tiff.rs

Dictionary

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


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', 'Limits::check_dimensions', 'ImageBuffer::inner_pixels', 'ImageDecoder::total_bytes', 'pnm::PnmDecoder::new', 'dds::DdsDecoder::new', 'ImageBuffer::from_raw', 'ImageDecoder::set_limits', 'ImageReader::set_format']

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

fuzz/fuzzers/fuzzer_script_ico.rs

Dictionary

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


Fuzzer function priority

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

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

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', 'ImageReader::make_decoder', 'zune_core::options::DecoderOptions::default', 'Limits::check_dimensions', 'crate::utils::check_dimension_overflow', 'ImageDecoder::total_bytes', 'pnm::PnmDecoder::new', 'ImageBuffer::image_buffer_len', 'dds::DdsDecoder::new']

fuzz/fuzzers/fuzzer_script_bmp.rs

Dictionary

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


Fuzzer function priority

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

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

fuzz/fuzzers/fuzzer_script_guess.rs

Dictionary

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


fuzz/fuzzers/fuzzer_script_tga.rs

Dictionary

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


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', 'zune_core::options::DecoderOptions::default', 'ImageBuffer::image_buffer_len', 'HdrDecoder::with_strictness', 'crate::utils::check_dimension_overflow', 'utils::check_dimension_overflow', 'Limits::check_dimensions', 'ImageReader::require_format', 'ImageReader::make_decoder']

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

Directories in report

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

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