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_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 1479 88.8%
gold [1:9] 40 2.40%
yellow [10:29] 17 1.02%
greenyellow [30:49] 11 0.66%
lawngreen 50+ 117 7.03%
All colors 1664 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
319 1299 ImageReader::make_decoder call site: 01299 HdrDecoder::with_strictness
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
194 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
117 1071 BmpDecoder::read_palette call site: 01071 vertical_sample
88 801 R::read_exact_vec call site: 00801 Header::from_reader
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
69 1211 bmp::BmpDecoder::new call site: 01211 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
22 932 check_for_overflow call site: 00932 ColorMap::get
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 770 R::read_exact_vec call site: 00770 ImageReader::into_dimensions

Runtime coverage analysis

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

Fuzzer: fuzzer_script_png

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1639 98.4%
gold [1:9] 0 0.0%
yellow [10:29] 5 0.30%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 20 1.20%
All colors 1664 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
499 781 ::std::io::Result::channel_count call site: 00781 BmpDecoder::read_metadata
333 1285 ImageReader::make_decoder call site: 01285 HdrDecoder::with_strictness
253 519 Limits::check_dimensions call site: 00519 Header::from_reader
215 283 FarbfeldReader::new call site: 00283 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
37 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
5 773 ColorType::channel_count call site: 00773 ImageReader::into_dimensions
4 1639 image::load_from_memory_with_format call site: 01639

Runtime coverage analysis

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

Fuzzer: fuzzer_script_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 1632 98.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 32 1.92%
All colors 1664 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
689 591 jpeg::JpegDecoder::new call site: 00591 BmpDecoder::read_metadata
204 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
183 1287 ImageReader::make_decoder call site: 01287 HdrDecoder::with_strictness
146 98 ImageBuffer::inner_pixels_mut call site: 00098 Orientation::locate_orientation_entry
146 1472 gcd call site: 01472 Delay::closest_bounded_fraction
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
51 450 Box::read_image call site: 00450 TgaDecoder::expand_color_map
36 519 Limits::check_dimensions call site: 00519
21 557 ImageReader::make_decoder call site: 00557
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions

Runtime coverage analysis

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

Fuzzer: fuzzer_script_pnm

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1539 92.4%
gold [1:9] 12 0.72%
yellow [10:29] 3 0.18%
greenyellow [30:49] 5 0.30%
lawngreen 50+ 105 6.31%
All colors 1664 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
405 875 dds::DdsDecoder::new call site: 00875 BmpDecoder::read_metadata
244 1281 ImageReader::make_decoder call site: 01281 HdrDecoder::with_strictness
194 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
177 324 ImageDecoder::total_bytes call site: 00324 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
46 801 R::read_exact_vec call site: 00801 Header::from_reader
30 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
23 278 crate::utils::check_dimension_overflow call site: 00278 ExtendedColorType::color_type
18 1589 pnm::PnmDecoder::new call site: 01589 FarbfeldReader::new
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits

Runtime coverage analysis

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

Fuzzer: roundtrip_webp

Call tree

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

Call tree overview bitmap:

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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
667 609 ImageReader::make_decoder call site: 00609 BmpDecoder::read_metadata
256 250 ImageReader::make_decoder call site: 00250 tests::test_image_outside_image_no_wrap_around
204 45 ImageBuffer::inner_pixels call site: 00045 Orientation::locate_orientation_entry
179 1287 ImageReader::make_decoder call site: 01287 HdrDecoder::with_strictness
147 1467 Ratio::new call site: 01467 Delay::closest_bounded_fraction
83 524 Limits::check_dimensions call site: 00524 TgaDecoder::expand_color_map
29 1617 ImageReader::require_format call site: 01617 ImageDecoder::set_limits
27 0 EP call site: 00000 ImageReader::make_decoder
20 1661 ImageBuffer::from_raw call site: 01661 Header::write_to
19 1691 ImageReader::set_format call site: 01691 ImageDecoder::set_limits
16 507 Limits::check_support call site: 00507 Limits::check_dimensions
11 32 ImageBuffer::image_buffer_len call site: 00032

Runtime coverage analysis

Covered functions
147
Functions that are reachable but not covered
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 55
src/color.rs 15
src/codecs/avif/encoder.rs 9
src/io/image_reader_type.rs 42
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/error.rs 111
src/images/buffer.rs 16
src/images/buffer_par.rs 1
src/codecs/farbfeld.rs 9
src/traits.rs 10
src/metadata.rs 15
src/animation.rs 18
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 14
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/codecs/dds.rs 11
src/io.rs 10
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11
src/codecs/tga/header.rs 3
src/images/dynimage.rs 2
tests/limits_anim.rs 6
src/codecs/gif.rs 3

Fuzzer: fuzzer_script_webp

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1643 98.7%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 1.26%
All colors 1664 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
676 604 ImageReader::make_decoder call site: 00604 BmpDecoder::read_metadata
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
179 1291 ImageReader::make_decoder call site: 01291 HdrDecoder::with_strictness
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
147 1471 Ratio::new call site: 01471 Delay::closest_bounded_fraction
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
83 519 Limits::check_dimensions call site: 00519 TgaDecoder::expand_color_map
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
8 1281 ImageReader::make_decoder call site: 01281
4 1639 image::load_from_memory_with_format call site: 01639

Runtime coverage analysis

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

Fuzzer: fuzzer_script_jpeg

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1642 98.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 22 1.32%
All colors 1664 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
519 761 tga::TgaDecoder::new call site: 00761 BmpDecoder::read_metadata
329 1289 ImageReader::make_decoder call site: 01289 HdrDecoder::with_strictness
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
192 567 ImageReader::make_decoder call site: 00567 Header::from_reader
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
46 519 Limits::check_dimensions call site: 00519
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
6 1281 ImageReader::make_decoder call site: 01281
4 1639 image::load_from_memory_with_format call site: 01639

Runtime coverage analysis

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

Fuzzer: fuzzer_script_ico

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1459 87.6%
gold [1:9] 40 2.40%
yellow [10:29] 15 0.90%
greenyellow [30:49] 5 0.30%
lawngreen 50+ 145 8.71%
All colors 1664 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
317 1301 ImageReader::make_decoder call site: 01301 HdrDecoder::with_strictness
250 519 Limits::check_dimensions call site: 00519 Header::from_reader
177 324 ImageDecoder::total_bytes call site: 00324 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
117 1071 BmpDecoder::read_palette call site: 01071 vertical_sample
92 801 R::read_exact_vec call site: 00801 BmpDecoder::read_metadata
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
37 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
22 932 check_for_overflow call site: 00932 ColorMap::get
21 1213 ImageReader::make_decoder call site: 01213 read_entries
18 283 FarbfeldReader::new call site: 00283 ExtendedColorType::color_type
18 1281 ImageReader::make_decoder call site: 01281

Runtime coverage analysis

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

Fuzzer: fuzzer_script_tiff

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1619 97.2%
gold [1:9] 16 0.96%
yellow [10:29] 5 0.30%
greenyellow [30:49] 2 0.12%
lawngreen 50+ 22 1.32%
All colors 1664 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 686 err_unknown_color_type call site: 00686 BmpDecoder::read_metadata
314 1304 hdr::HdrDecoder::new call site: 01304 HdrMetadata::update_header_info
256 245 ImageReader::make_decoder call site: 00245 tests::test_image_outside_image_no_wrap_around
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
91 519 Limits::check_dimensions call site: 00519 TgaDecoder::expand_color_map
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
23 612 ImageReader::make_decoder call site: 00612 FarbfeldDecoder::new
23 658 ImageError::from_tiff_decode call site: 00658 TgaDecoder::expand_color_map
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits
16 502 Limits::check_support call site: 00502 Limits::check_dimensions
10 1281 ImageReader::make_decoder call site: 01281

Runtime coverage analysis

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

Fuzzer: fuzzer_script_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 1493 89.7%
gold [1:9] 23 1.38%
yellow [10:29] 4 0.24%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 144 8.65%
All colors 1664 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 787 io::Result::len call site: 00787 BmpDecoder::read_metadata
223 278 crate::utils::check_dimension_overflow call site: 00278 tests::test_image_outside_image_no_wrap_around
195 575 zune_core::options::DecoderOptions::default call site: 00575 Header::from_reader
152 92 ImageBuffer::image_buffer_len call site: 00092 Orientation::locate_orientation_entry
125 1451 HdrDecoder::with_strictness call site: 01451 Delay::closest_bounded_fraction
85 2 image::load_from_memory_with_format call site: 00002 ImageReader::make_decoder
55 519 Limits::check_dimensions call site: 00519
30 245 ImageReader::make_decoder call site: 00245 FarbfeldReader::new
24 1579 utils::check_dimension_overflow call site: 01579 FarbfeldReader::new
20 1281 ImageReader::make_decoder call site: 01281
18 1645 ImageReader::set_format call site: 01645 ImageDecoder::set_limits
17 1621 ImageReader::require_format call site: 01621 ImageDecoder::set_limits

Runtime coverage analysis

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

Fuzzer: fuzzer_script_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 1429 83.9%
gold [1:9] 67 3.93%
yellow [10:29] 20 1.17%
greenyellow [30:49] 13 0.76%
lawngreen 50+ 173 10.1%
All colors 1702 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
287 1308 hdr::HdrDecoder::new call site: 01308 HdrMetadata::update_header_info
259 958 TgaDecoder::expand_color_map call site: 00958 BmpDecoder::read_bitmap_info_header
131 341 ImageDecoder::total_bytes call site: 00341 tests::test_image_outside_image_no_wrap_around
115 515 avif::AvifDecoder::new call site: 00515 FarbfeldDecoder::new
69 34 ColorMap::get call site: 00034 Orientation::locate_orientation_entry
64 632 FarbfeldDecoder::new call site: 00632 TgaDecoder::expand_color_map
59 821 tga::TgaDecoder::new call site: 00821 Header::from_reader
52 884 DxtDecoder::new call site: 00884 BmpDecoder::read_metadata
51 133 TgaDecoder::expand_color_map call site: 00133 ImageReader::into_dimensions
37 1270 ico::IcoDecoder::new call site: 01270 register_decoding_hook
35 1607 ico::IcoDecoder::new call site: 01607 ImageDecoder::set_limits
31 1238 ico::IcoDecoder::new call site: 01238 Enlargeable::clamp_from

Runtime coverage analysis

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

Files reached

filename functions hit
fuzz/fuzzers/fuzzer_script_tga.rs 2
tests/limits_anim.rs 5
src/error.rs 109
src/codecs/dds.rs 11
src/codecs/avif/encoder.rs 5
src/io/image_reader_type.rs 40
src/hooks.rs 14
src/images/flat.rs 2
src/codecs/tga/decoder.rs 15
src/metadata.rs 15
src/traits.rs 10
src/images/buffer.rs 14
src/images/buffer_par.rs 1
src/animation.rs 18
src/codecs/farbfeld.rs 9
src/color.rs 15
src/io/format.rs 2
src/utils/mod.rs 4
src/io/free_functions.rs 11
src/io/decoder.rs 10
src/imageops/fast_blur.rs 7
src/imageops/mod.rs 17
src/images/generic_image.rs 11
src/codecs/avif/decoder.rs 8
src/codecs/png.rs 21
src/io/limits.rs 5
src/codecs/tiff.rs 15
src/io.rs 10
src/codecs/hdr/decoder.rs 55
src/codecs/openexr.rs 15
src/codecs/bmp/decoder.rs 50
src/imageops/sample.rs 25
src/codecs/ico/decoder.rs 14
src/codecs/pnm/decoder.rs 11

Fuzzer: fuzzer_script_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 1678 96.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 55 3.17%
All colors 1733 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
656 827 to_image_err call site: 00827 BmpDecoder::read_metadata
301 29 OpenExrDecoder::with_alpha_preference call site: 00029 ImageReader::make_decoder
253 548 Limits::check_dimensions call site: 00548 Header::from_reader
177 353 ImageDecoder::total_bytes call site: 00353 tests::test_image_outside_image_no_wrap_around
94 1510 OpenExrDecoder::with_alpha_preference call site: 01510 FarbfeldReader::new
46 1682 roundtrip call site: 01682 write_buffer
31 1616 ImageDecoder::set_limits call site: 01616 Delay::closest_bounded_fraction
19 9 OpenExrDecoder::with_alpha_preference call site: 00009
16 531 Limits::check_support call site: 00531 Limits::check_dimensions
14 1656 OpenExrDecoder::with_alpha_preference call site: 01656 ImageDecoder::set_limits
13 810 ::std::io::Result::channel_count call site: 00810
13 1488 OpenExrDecoder::with_alpha_preference call site: 01488 tests::small

Runtime coverage analysis

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

Fuzzer: fuzzer_script_guess

Call tree

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

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1329 75.6%
gold [1:9] 74 4.21%
yellow [10:29] 85 4.83%
greenyellow [30:49] 25 1.42%
lawngreen 50+ 244 13.8%
All colors 1757 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
174 327 ImageDecoder::total_bytes call site: 00327 tests::test_image_outside_image_no_wrap_around
144 103 ImageBuffer::inner_pixels_mut call site: 00103 Orientation::locate_orientation_entry
117 1074 BmpDecoder::read_palette call site: 01074 vertical_sample
90 2 image::load_from_memory call site: 00002 ImageReader::make_decoder
83 689 err_unknown_color_type call site: 00689 Header::from_reader
47 845 DX10Header::validate call site: 00845 DxtDecoder::new
44 1475 gcd call site: 01475 Delay::closest_bounded_fraction
44 1652 Frame::clone call site: 01652 GifEncoder::set_repeat
36 522 Limits::check_dimensions call site: 00522
35 570 ImageReader::make_decoder call site: 00570 TgaDecoder::expand_color_map
33 989 BmpDecoder::read_bitmap_info_header call site: 00989
30 248 ImageReader::make_decoder call site: 00248 FarbfeldReader::new

Runtime coverage analysis

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

Fuzz engine guidance

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

fuzz/fuzzers/fuzzer_script_bmp.rs

Dictionary

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


Fuzzer function priority

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

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

fuzz/fuzzers/fuzzer_script_png.rs

Dictionary

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


Fuzzer function priority

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

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

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=['jpeg::JpegDecoder::new', 'ImageReader::make_decoder', 'ImageBuffer::inner_pixels_mut', 'gcd', 'image::load_from_memory_with_format', 'Box::read_image', 'Limits::check_dimensions', 'ImageReader::set_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=['dds::DdsDecoder::new', 'ImageReader::make_decoder', 'zune_core::options::DecoderOptions::default', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'image::load_from_memory_with_format', 'Limits::check_dimensions', 'R::read_exact_vec', 'crate::utils::check_dimension_overflow']

fuzz/fuzzers/roundtrip_webp.rs

Dictionary

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


Fuzzer function priority

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

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

fuzz/fuzzers/fuzzer_script_webp.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'Ratio::new', 'image::load_from_memory_with_format', 'Limits::check_dimensions', 'ImageReader::set_format', 'ImageReader::require_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_jpeg.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['tga::TgaDecoder::new', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'image::load_from_memory_with_format', 'Limits::check_dimensions', 'ImageReader::set_format', 'ImageReader::require_format', 'Limits::check_support']

fuzz/fuzzers/fuzzer_script_ico.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['ImageReader::make_decoder', 'Limits::check_dimensions', 'ImageDecoder::total_bytes', 'ImageBuffer::image_buffer_len', 'BmpDecoder::read_palette', 'R::read_exact_vec', 'image::load_from_memory_with_format', 'check_for_overflow']

fuzz/fuzzers/fuzzer_script_tiff.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['err_unknown_color_type', 'hdr::HdrDecoder::new', 'ImageReader::make_decoder', 'ImageBuffer::image_buffer_len', 'Limits::check_dimensions', 'image::load_from_memory_with_format', 'ImageError::from_tiff_decode', 'ImageReader::set_format', 'ImageReader::require_format']

fuzz/fuzzers/fuzzer_script_hdr.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['io::Result::len', 'crate::utils::check_dimension_overflow', 'zune_core::options::DecoderOptions::default', 'ImageBuffer::image_buffer_len', 'HdrDecoder::with_strictness', 'image::load_from_memory_with_format', 'Limits::check_dimensions', 'ImageReader::make_decoder', 'utils::check_dimension_overflow']

fuzz/fuzzers/fuzzer_script_tga.rs

Dictionary

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


Fuzzer function priority

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

-focus_function=['hdr::HdrDecoder::new', 'TgaDecoder::expand_color_map', 'ImageDecoder::total_bytes', 'avif::AvifDecoder::new', 'ColorMap::get', 'FarbfeldDecoder::new', 'tga::TgaDecoder::new', 'DxtDecoder::new', 'ico::IcoDecoder::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', 'OpenExrDecoder::with_alpha_preference', 'Limits::check_dimensions', 'ImageDecoder::total_bytes', 'roundtrip', 'ImageDecoder::set_limits', 'Limits::check_support']

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

Directories in report

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

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