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: empty-file.cpp

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 1 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 1 100

Runtime coverage analysis

Covered functions
8829
Functions that are reachable but not covered
0
Reachable functions
0
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

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
avif::GetIoStatsFromEncode /src/libavif/tests/gtest/avifiostatstest.cc 4 ['avifIOStats', 'int', 'int', 'bool'] 12 0 29 3 3 548 0 2806 2806
DecodeNthImage /src/libavif/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc 4 ['JNIEnv*', 'AvifDecoderWrapper*', 'uint32_t', 'jobject'] 9 0 6 2 1 209 0 989 681
avif::WriteImage /src/libavif/apps/avifgainmaputil/imageio.cc 4 ['avifImage*', 'std::string', 'int', 'int'] 12 0 34 10 9 360 0 1663 203
aomCodecEncodeImage /src/libavif/src/codec_aom.c 11 ['avifCodec*', 'avifEncoder*', 'avifImage*', 'avifBool', 'int', 'int', 'int', 'avifEncoderChanges', 'avifBool', 'avifAddImageFlags', 'avifCodecEncodeOutput*'] 5 0 395 102 126 59 0 230 193
avifEncodeImages /src/libavif/apps/avifenc.c 7 ['avifSettings*', 'avifInput*', 'avifInputFile*', 'avifImage*', 'avifImage**', 'avifRWData*', 'avifEncodedByteSizes*'] 15 0 69 16 21 418 0 1996 174
avifImageComputeGainMap /src/libavif/src/gainmap.c 4 ['avifImage*', 'avifImage*', 'avifGainMap*', 'avifDiagnostics*'] 9 0 48 8 15 188 1 879 133
avif::ToneMapImageAndCompareToReference /src/libavif/tests/gtest/avifgainmaptest.cc 9 ['avifImage*', 'avifGainMap', 'float', 'int', 'avifTransferCharacteristics', 'avifRGBFormat', 'avifImage*', 'float', 'float'] 9 0 16 3 2 207 0 864 91
rav1eCodecEncodeImage /src/libavif/src/codec_rav1e.c 11 ['avifCodec*', 'avifEncoder*', 'avifImage*', 'avifBool', 'int', 'int', 'int', 'avifEncoderChanges', 'avifBool', 'uint32_t', 'avifCodecEncodeOutput*'] 4 0 172 44 64 40 0 80 67
avif::testutil::EncodeDecodeGridValid /src/libavif/tests/gtest/avif_fuzztest_enc_dec_incr.cc 7 ['ImagePtr', 'EncoderPtr', 'DecoderPtr', 'uint32_t', 'uint32_t', 'bool', 'bool'] 14 0 25 6 11 456 0 2415 62
avif::testutil::AreImagesSimilar /src/libavif/tests/gtest/aviftest_helpers.cc 4 ['avifImage', 'avifImage', 'double', 'bool'] 5 0 11 4 7 36 0 145 61

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
65.0%
611 / 940
Cyclomatic complexity statically reachable by fuzzers
82.0%
4471 / 5446

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

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

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
absl::lts_20240116::container_internal::AssertIsFull(absl::lts_20240116::container_internal::ctrl_tconst*,unsignedchar,unsignedcharconst*,charconst*) 32 2 6.25%
absl::lts_20240116::container_internal::AssertSameContainer(absl::lts_20240116::container_internal::ctrl_tconst*,absl::lts_20240116::container_internal::ctrl_tconst*,voidconst*const&,voidconst*const&,unsignedcharconst*,unsignedcharconst*) 44 2 4.545%
absl::lts_20240116::flags_internal::FlagImpl::ParseFrom(std::__1::basic_string_view >,absl::lts_20240116::flags_internal::FlagSettingMode,absl::lts_20240116::flags_internal::ValueSource,std::__1::basic_string ,std::__1::allocator >&) 41 15 36.58%
void*absl::lts_20240116::flags_internal::FlagOps (absl::lts_20240116::flags_internal::FlagOp,voidconst*,void*,void*) 47 11 23.40%
void*absl::lts_20240116::flags_internal::FlagOps (absl::lts_20240116::flags_internal::FlagOp,voidconst*,void*,void*) 47 11 23.40%
void*absl::lts_20240116::flags_internal::FlagOps (absl::lts_20240116::flags_internal::FlagOp,voidconst*,void*,void*) 47 11 23.40%
void*absl::lts_20240116::flags_internal::FlagOps >(absl::lts_20240116::flags_internal::FlagOp,voidconst*,void*,void*) 47 11 23.40%
void*absl::lts_20240116::flags_internal::FlagOps ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>>(absl::lts_20240116::flags_internal::FlagOp,voidconst*,void*,void*) 47 12 25.53%
absl::lts_20240116::flags_internal::HandleUsageFlags(std::__1::basic_ostream >&,std::__1::basic_string_view >) 49 7 14.28%
absl::lts_20240116::flags_internal::(anonymousnamespace)::DeduceFlagValue(absl::lts_20240116::CommandLineFlagconst&,std::__1::basic_string_view >,bool,bool,absl::lts_20240116::flags_internal::(anonymousnamespace)::ArgsList*) 48 6 12.5%
absl::lts_20240116::flags_internal::FlagRegistry::RegisterFlag(absl::lts_20240116::CommandLineFlag&,charconst*) 53 8 15.09%
absl::lts_20240116::hash_internal::LowLevelHash(voidconst*,unsignedlong,unsignedlong,unsignedlongconst*) 55 28 50.90%
absl::lts_20240116::strings_internal::Base64EscapeInternal(unsignedcharconst*,unsignedlong,char*,unsignedlong,charconst*,bool) 82 41 50.0%
boolabsl::lts_20240116::str_format_internal::ConvertIntArg (absl::lts_20240116::int128,absl::lts_20240116::str_format_internal::FormatConversionSpecImpl,absl::lts_20240116::str_format_internal::FormatSinkImpl*) 44 15 34.09%
absl::lts_20240116::str_format_internal::(anonymousnamespace)::ArgContext::Bind(absl::lts_20240116::str_format_internal::UnboundConversionconst*,absl::lts_20240116::str_format_internal::BoundConversion*) 40 15 37.5%
absl::lts_20240116::(anonymousnamespace)::safe_parse_sign_and_base(std::__1::basic_string_view >*,int*,bool*) 55 29 52.72%
fuzztest::GetMatchingFuzzTestOrExit(std::__1::basic_string_view >) 32 11 34.37%
fuzztest::internal::GTest_TestAdaptor::TestBody() 32 9 28.12%
testing::internal::TypeParameterizedTestSuiteRegistry::CheckForInstantiations() 33 4 12.12%
testing::Test::HasSameFixtureClass() 42 12 28.57%
testing::internal::ShouldShard(charconst*,charconst*,bool) 36 8 22.22%
aom_highbd_blend_a64_d16_mask_c 89 37 41.57%
aom_blend_a64_mask_c 49 18 36.73%
aom_highbd_blend_a64_mask_c 54 23 42.59%
aom_convolve_copy_avx2 93 48 51.61%
aom_lowbd_blend_a64_d16_mask_avx2 111 60 54.05%
parse_operating_points 50 10 20.0%
decoder_decode 51 25 49.01%
decoder_get_frame 103 45 43.68%
av1_alloc_cdef_buffers 68 28 41.17%
update_ext_partition_context 35 18 51.42%
get_filter_level 37 8 21.62%
filter_vert 171 59 34.50%
filter_horz 171 59 34.50%
get_flip_cfg 38 19 50.0%
av1_convolve_2d_facade 39 19 48.71%
av1_highbd_convolve_2d_facade 45 17 37.77%
av1_setup_skip_mode_allowed 61 8 13.11%
av1_loop_restoration_dealloc 41 19 46.34%
filter_4xh 82 26 31.70%
av1_inv_txfm2d_add_4x4_sse4_1 119 55 46.21%
store_vertical_filter_output_avx2 108 24 22.22%
av1_read_sequence_header 70 32 45.71%
av1_decode_tg_tiles_and_wrapup 105 54 51.42%
read_uncompressed_header 522 152 29.11%
read_frame_size 52 23 44.23%
setup_segmentation 62 15 24.19%
read_global_motion_params 60 16 26.66%
dec_calc_subpel_params 66 30 45.45%
parse_decode_block 49 22 44.89%
decode_token_recon_block 97 50 51.54%
loop_restoration_read_sb_coeffs 37 16 43.24%
read_delta_q_params 34 4 11.76%
read_inter_segment_id 35 12 34.28%
read_ref_frames 82 45 54.87%
assign_mv 102 44 43.13%
av1_receive_compressed_data 55 23 41.81%
av1_read_coeffs_txb 35 17 48.57%
aom_decode_frame_from_obus 196 93 47.44%
read_sequence_header_obu 141 43 30.49%
read_tile_group_header 46 21 45.65%
convolve_2d_sr_hor_2tap_avx2 74 29 39.18%
convolve_2d_sr_ver_2tap_half_avx2 108 49 45.37%
av1_convolve_y_sr_specialized_avx2 729 273 37.44%
av1_convolve_x_sr_specialized_avx2 326 136 41.71%
dav1d_decode_tile_sbrow 106 55 51.88%
dav1d_decode_frame_init 348 151 43.39%
dav1d_submit_frame 376 136 36.17%
decode_sb 259 133 51.35%
decode_b 1157 222 19.18%
dav1d_parse_obus 409 108 26.40%
parse_seq_hdr 167 77 46.10%
parse_frame_hdr 643 175 27.21%
get_dc_sign_ctx 149 69 46.30%
dav1d_worker_task 348 189 54.31%
check_tile 40 12 30.0%
parseSequenceHeaderLevelIdxAndTier 62 10 16.12% ['empty-file.cpp']
avifDecoderParse 48 23 47.91% ['empty-file.cpp']
avifDecoderReset 356 149 41.85% ['empty-file.cpp']
avifDecoderNextImage 53 29 54.71% ['empty-file.cpp']
avifParseItemLocationBox 105 57 54.28% ['empty-file.cpp']
avifDecoderFindMetadata 45 13 28.88% ['empty-file.cpp']
avifDecoderItemRead 102 42 41.17% ['empty-file.cpp']
avifMetaFindAlphaItem 98 15 15.30% ['empty-file.cpp']
avifCodecDecodeInputFillFromDecoderItem 87 21 24.13% ['empty-file.cpp']
avifDecoderItemValidateProperties 82 18 21.95% ['empty-file.cpp']
avifDecoderPrepareSample 41 18 43.90% ['empty-file.cpp']
avifDecoderDecodeTiles 81 35 43.20% ['empty-file.cpp']
boolabsl::lts_20240116::str_format_internal::ConvertIntArg (absl::lts_20240116::uint128,absl::lts_20240116::str_format_internal::FormatConversionSpecImpl,absl::lts_20240116::str_format_internal::FormatSinkImpl*) 44 15 34.09%
aom_codec_get_cx_data 35 17 48.57%
compute_corner_list 59 27 45.76%
av1_highbd_convolve_y_sr_ssse3 203 101 49.75%
av1_realloc_and_scale_if_required 45 9 20.0%
av1_convolve_y_sr_general_avx2 363 128 35.26%
av1_convolve_x_sr_general_avx2 262 78 29.77%
av1_highbd_convolve_2d_sr_ssse3 289 156 53.97%
av1_quantize_b_facade 65 24 36.92%
av1_highbd_quantize_b_facade 65 24 36.92%
av1_set_quantizer 83 31 37.34%
av1_write_sequence_header_obu 64 22 34.37%
av1_write_last_tile_info 31 15 48.38%
write_sequence_header 54 16 29.62%
write_uncompressed_header_obu 282 76 26.95%
encode_loopfilter 43 20 46.51%
encode_restoration_mode 65 3 4.615%
write_global_motion_params 47 9 19.14%
write_modes_sb 88 44 50.0%
loop_restoration_write_sb_coeffs 37 20 54.05%
write_delta_q_params 38 4 10.52%
write_inter_segment_id 32 7 21.87%
av1_write_metadata_array 55 6 10.90%
remux_tiles 71 38 53.52%
av1_find_cnn_layer_output_size 39 19 48.71%
av1_cnn_predict_c 145 74 51.03%
av1_cnn_convolve 56 22 39.28%
av1_setup_sms_tree 40 2 5.0%
av1_configure_buffer_updates 53 13 24.52%
av1_get_refresh_frame_flags 73 7 9.589%
av1_get_ref_frames 155 61 39.35%
choose_frame_source 50 21 42.0%
adjust_frame_rate 47 19 40.42%
choose_primary_ref_frame 31 7 22.58%
denoise_and_encode 132 34 25.75%
encode_nonrd_sb 55 25 45.45%
init_ref_frame_space 52 10 19.23%
setup_delta_q 75 29 38.66%
encode_frame_internal 359 178 49.58%
setup_prune_ref_frame_mask 46 6 13.04%
check_to_disable_ref_frame_mvs 47 4 8.510%
av1_get_q_for_deltaq_objective 83 22 26.50%
av1_receive_raw_frame 54 21 38.88%
av1_post_encode_updates 63 34 53.96%
av1_apply_encoding_flags 65 29 44.61%
set_tile_info 53 27 50.94%
set_bitstream_level_tier 57 24 42.10%
encode_frame_to_data_rate 256 106 41.40%
encode_with_recode_loop_and_filter 88 45 51.13%
encode_without_recode 197 85 43.14%
cdef_restoration_frame 50 10 20.0%
av1_apply_active_map 43 23 53.48%
av1_set_size_dependent_vars 60 18 30.0%
av1_update_film_grain_parameters 34 11 32.35%
av1_scale_references 99 26 26.26%
av1_select_sb_size 51 23 45.09%
av1_finalize_encoded_frame 33 14 42.42%
av1_compute_num_fp_contexts 33 6 18.18%
is_fpmt_config 33 8 24.24%
lpf_pipeline_mt_init 50 14 28.00%
av1_firstpass_info_init 34 18 52.94%
av1_refine_integerized_param 73 22 30.13%
construct_multi_layer_gf_structure 208 74 35.57%
set_multi_layer_params 75 7 9.333%
av1_highbd_fwd_txfm 66 36 54.54%
rd_pick_filter_intra_sby 68 20 29.41%
intra_mode_info_cost_uv 41 20 48.78%
intra_mode_info_cost_y 57 26 45.61%
av1_make_default_subpel_ms_params 34 18 52.94%
calc_int_sad_list 43 21 48.83%
setup_center_error 43 22 51.16%
search_motion_mode 123 67 54.47%
set_early_term_based_on_uv_plane 68 22 32.35%
handle_screen_content_mode_nonrd 108 20 18.51%
setup_block_rdmult 36 16 44.44%
encode_b 113 49 43.36%
update_stats 230 27 11.73%
prune_partitions_after_none 42 11 26.19%
prune_partitions_after_split 31 11 35.48%
prune_4_way_partition_search 54 29 53.70%
av1_get_second_pass_params 188 97 51.59%
av1_twopass_postencode_update 167 59 35.32%
adjust_boost_bits_for_target_level 44 16 36.36%
process_first_pass_stats 41 14 34.14%
find_next_key_frame 151 32 21.19%
identify_regions 86 3 3.488%
adjust_unstable_region_bounds 101 18 17.82%
find_blending_regions 133 56 42.10%
cleanup_blendings 34 5 14.70%
calculate_gf_length 183 20 10.92%
define_gf_group 91 21 23.07%
set_baseline_gf_interval 38 19 50.0%
get_cdef_filter_strengths 40 19 47.5%
av1_pick_filter_level 200 52 26.0%
finer_search_wiener 93 5 5.376%
av1_rc_drop_frame 48 13 27.08%
av1_adjust_gf_refresh_qp_one_pass_rt 38 19 50.0%
av1_get_one_pass_rt_params 135 71 52.59%
set_rate_correction_factor 35 11 31.42%
adjust_q_cbr 122 52 42.62%
calc_active_best_quality_no_stats_cbr 48 25 52.08%
rc_pick_q_and_bounds 59 18 30.50%
get_intra_q_and_bounds 68 15 22.05%
rc_scene_detection_onepass_rt 235 122 51.91%
recode_loop_update_q 144 11 7.638%
av1_fill_mode_rates 211 116 54.97%
rd_pick_intrabc_mode_sb 173 69 39.88%
init_mode_skip_mask 133 66 49.62%
skip_inter_mode 92 50 54.34%
inter_mode_search_order_independent_skip 102 53 51.96%
rd_pick_skip_mode 102 54 52.94%
prune_ref_by_selective_ref_frame 53 24 45.28%
store_winner_mode_stats 49 19 38.77%
av1_set_speed_features_qindex_dependent 167 64 38.32%
set_rt_speed_feature_framesize_dependent 311 62 19.93%
calculate_next_superres_scale 70 19 27.14%
validate_size_scales 49 4 8.163%
get_inter_cost 53 27 50.94%
av1_pick_uniform_tx_size_type_yrd 51 24 47.05%
recon_intra 36 15 41.66%
choose_largest_tx_size 88 20 22.72%
do_int_pro_motion_estimation 43 21 48.83%
chroma_check 91 23 25.27%
av1_fwd_txfm2d_8x8_avx2 173 82 47.39%
av1_fwd_txfm2d_16x16_avx2 192 70 36.45%
av1_fwd_txfm2d_4x4_sse4_1 122 58 47.54%
avifImageCopy 61 22 36.06% ['empty-file.cpp']
avifProcessAOMOptionsPostInit 39 4 10.25% ['empty-file.cpp']
aomCodecEncodeFinish 37 19 51.35% ['empty-file.cpp']
avifEncoderFinish 512 187 36.52% ['empty-file.cpp']
avifEncoderAddImageInternal 260 119 45.76% ['empty-file.cpp']
avifValidateGrid 66 27 40.90% ['empty-file.cpp']
avifEncoderDetectChanges 44 6 13.63% ['empty-file.cpp']
avifRWStreamWriteProperties 145 77 53.10% ['empty-file.cpp']
avifEncoderWriteTrackMetaBox 58 9 15.51% ['empty-file.cpp']
avifEncoderWriteTransformativeProperties 48 6 12.5% ['empty-file.cpp']
avifEncoderWriteMediaDataBox 109 57 52.29% ['empty-file.cpp']
avifDecoderNthImage 33 8 24.24% ['empty-file.cpp']
avifExtractExifAndXMP 71 33 46.47% ['empty-file.cpp']
avifGuessFileFormat 35 14 40.0% ['empty-file.cpp']
y4mColorSpaceParse 88 29 32.95% ['empty-file.cpp']
jsimd_ycc_rgb_convert 44 13 29.54%
output_pass_setup 45 10 22.22%
start_pass 173 39 22.54%
j12init_color_deconverter 151 67 44.37%
gray_rgb_convert 36 8 22.22%
null_convert 49 21 42.85%
j16init_color_deconverter 151 59 39.07%
jinit_color_deconverter 160 76 47.5%
jpeg_core_output_dimensions 130 32 24.61%
use_merged_upsample 38 6 15.78%
prepare_for_output_pass 41 19 46.34%
j12init_d_post_controller 40 20 50.0%
start_pass_dpost 36 14 38.88%
jinit_d_post_controller 39 20 51.28%
access_virt_sarray 59 31 52.54%
png_user_version_check 34 17 50.0%
png_free_data 162 79 48.76%
png_zstream_error 36 17 47.22%
png_check_IHDR 98 31 31.63%
png_destroy_gamma_table 48 19 39.58%
png_format_number 46 20 43.47%
png_set_longjmp_fn 37 11 29.72%
png_read_row 150 61 40.66%
png_init_read_transformations 365 58 15.89%
png_do_read_transformations 184 97 52.71%
png_init_palette_transformations 54 29 53.70%
png_init_rgb_transformations 50 16 32.0%
png_do_expand 194 69 35.56%
png_handle_unknown 86 25 29.06%
png_combine_row 252 22 8.730%
png_read_finish_row 33 8 24.24%
png_read_start_row 181 99 54.69%
png_handle_bKGD 81 39 48.14%
png_handle_sBIT 51 20 39.21%
png_handle_sPLT 92 48 52.17%
SharpYuvGammaToLinear 52 5 9.615%
SharpYuvLinearToGamma 52 5 9.615%
x86CPUInfo 45 17 37.77%
avifImageRGBToYUVLibYUV8bpc 78 5 6.410% ['empty-file.cpp']
getLibYUVConstants 120 13 10.83% ['empty-file.cpp']

Fuzz driver synthesis

New fuzzers

The below fuzzers are templates and suggestions for how to target the set of optimal functions above

avifiostatstest.cc

Target file: /src/libavif/tests/gtest/avifiostatstest.cc
Target functions: avif::GetIoStatsFromEncode
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avif::GetIoStatsFromEncode */
  UNKNOWN_TYPE unknown_0;
  int new_var1 = ada_safe_get_int();
  int new_var2 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_3;
  avif::GetIoStatsFromEncode(unknown_0, new_var1, new_var2, unknown_3);

  af_safe_gb_cleanup();
}

libavif_jni.cc

Target file: /src/libavif/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc
Target functions: DecodeNthImage
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target DecodeNthImage */
  UNKNOWN_TYPE unknown_4;
  UNKNOWN_TYPE unknown_5;
  UNKNOWN_TYPE unknown_6;
  UNKNOWN_TYPE unknown_7;
  DecodeNthImage(unknown_4, unknown_5, unknown_6, unknown_7);

  af_safe_gb_cleanup();
}

imageio.cc

Target file: /src/libavif/apps/avifgainmaputil/imageio.cc
Target functions: avif::WriteImage
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avif::WriteImage */
  UNKNOWN_TYPE unknown_8;
  UNKNOWN_TYPE unknown_9;
  int new_var10 = ada_safe_get_int();
  int new_var11 = ada_safe_get_int();
  avif::WriteImage(unknown_8, unknown_9, new_var10, new_var11);

  af_safe_gb_cleanup();
}

codec_aom.c

Target file: /src/libavif/src/codec_aom.c
Target functions: aomCodecEncodeImage
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target aomCodecEncodeImage */
  UNKNOWN_TYPE unknown_12;
  UNKNOWN_TYPE unknown_13;
  UNKNOWN_TYPE unknown_14;
  UNKNOWN_TYPE unknown_15;
  int new_var16 = ada_safe_get_int();
  int new_var17 = ada_safe_get_int();
  int new_var18 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_19;
  UNKNOWN_TYPE unknown_20;
  UNKNOWN_TYPE unknown_21;
  UNKNOWN_TYPE unknown_22;
  aomCodecEncodeImage(unknown_12, unknown_13, unknown_14, unknown_15, new_var16, new_var17, new_var18, unknown_19, unknown_20, unknown_21, unknown_22);

  af_safe_gb_cleanup();
}

avifenc.c

Target file: /src/libavif/apps/avifenc.c
Target functions: avifEncodeImages
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avifEncodeImages */
  UNKNOWN_TYPE unknown_23;
  UNKNOWN_TYPE unknown_24;
  UNKNOWN_TYPE unknown_25;
  UNKNOWN_TYPE unknown_26;
  UNKNOWN_TYPE unknown_27;
  UNKNOWN_TYPE unknown_28;
  UNKNOWN_TYPE unknown_29;
  avifEncodeImages(unknown_23, unknown_24, unknown_25, unknown_26, unknown_27, unknown_28, unknown_29);

  af_safe_gb_cleanup();
}

gainmap.c

Target file: /src/libavif/src/gainmap.c
Target functions: avifImageComputeGainMap
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avifImageComputeGainMap */
  UNKNOWN_TYPE unknown_30;
  UNKNOWN_TYPE unknown_31;
  UNKNOWN_TYPE unknown_32;
  UNKNOWN_TYPE unknown_33;
  avifImageComputeGainMap(unknown_30, unknown_31, unknown_32, unknown_33);

  af_safe_gb_cleanup();
}

avifgainmaptest.cc

Target file: /src/libavif/tests/gtest/avifgainmaptest.cc
Target functions: avif::ToneMapImageAndCompareToReference
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avif::ToneMapImageAndCompareToReference */
  UNKNOWN_TYPE unknown_34;
  UNKNOWN_TYPE unknown_35;
  UNKNOWN_TYPE unknown_36;
  int new_var37 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_38;
  UNKNOWN_TYPE unknown_39;
  UNKNOWN_TYPE unknown_40;
  UNKNOWN_TYPE unknown_41;
  UNKNOWN_TYPE unknown_42;
  avif::ToneMapImageAndCompareToReference(unknown_34, unknown_35, unknown_36, new_var37, unknown_38, unknown_39, unknown_40, unknown_41, unknown_42);

  af_safe_gb_cleanup();
}

codec_rav1e.c

Target file: /src/libavif/src/codec_rav1e.c
Target functions: rav1eCodecEncodeImage
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target rav1eCodecEncodeImage */
  UNKNOWN_TYPE unknown_43;
  UNKNOWN_TYPE unknown_44;
  UNKNOWN_TYPE unknown_45;
  UNKNOWN_TYPE unknown_46;
  int new_var47 = ada_safe_get_int();
  int new_var48 = ada_safe_get_int();
  int new_var49 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_50;
  UNKNOWN_TYPE unknown_51;
  UNKNOWN_TYPE unknown_52;
  UNKNOWN_TYPE unknown_53;
  rav1eCodecEncodeImage(unknown_43, unknown_44, unknown_45, unknown_46, new_var47, new_var48, new_var49, unknown_50, unknown_51, unknown_52, unknown_53);

  af_safe_gb_cleanup();
}

avif_fuzztest_enc_dec_incr.cc

Target file: /src/libavif/tests/gtest/avif_fuzztest_enc_dec_incr.cc
Target functions: avif::testutil::EncodeDecodeGridValid
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avif::testutil::EncodeDecodeGridValid */
  UNKNOWN_TYPE unknown_54;
  UNKNOWN_TYPE unknown_55;
  UNKNOWN_TYPE unknown_56;
  UNKNOWN_TYPE unknown_57;
  UNKNOWN_TYPE unknown_58;
  UNKNOWN_TYPE unknown_59;
  UNKNOWN_TYPE unknown_60;
  avif::testutil::EncodeDecodeGridValid(unknown_54, unknown_55, unknown_56, unknown_57, unknown_58, unknown_59, unknown_60);

  af_safe_gb_cleanup();
}

aviftest_helpers.cc

Target file: /src/libavif/tests/gtest/aviftest_helpers.cc
Target functions: avif::testutil::AreImagesSimilar
#include "ada_fuzz_header.h"

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  af_safe_gb_init(data, size);

  /* target avif::testutil::AreImagesSimilar */
  UNKNOWN_TYPE unknown_61;
  UNKNOWN_TYPE unknown_62;
  UNKNOWN_TYPE unknown_63;
  UNKNOWN_TYPE unknown_64;
  avif::testutil::AreImagesSimilar(unknown_61, unknown_62, unknown_63, unknown_64);

  af_safe_gb_cleanup();
}

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/libavif/tests/gtest/avif_fuzztest_yuvrgb.cc [] []
/src/libavif/src/diag.c [] []
/src/libavif/tests/gtest/aviftilingtest.cc [] []
/src/libavif/apps/avifgainmaputil/imageio.cc [] []
/src/libavif/src/reformat.c [] []
/src/libavif/src/colrconvert.c [] []
/src/libavif/third_party/libyuv/source/scale_common.c [] []
/src/libavif/apps/avifgainmaputil/swapbase_command.cc [] []
/src/libavif/src/alpha.c [] []
/src/libavif/src/codec_avm.c [] []
/src/libavif/contrib/gdk-pixbuf/loader.c [] []
/src/libavif/third_party/libyuv/include/libyuv/row.h [] []
/src/libavif/apps/avifenc.c [] []
/src/libavif/tests/gtest/avifsvttest.cc [] []
/src/libavif/examples/avif_example_encode.c [] []
/src/libavif/apps/shared/avifjpeg.c [] []
/src/libavif/tests/gtest/avif16bittest.cc [] []
/src/libavif/src/reformat_libsharpyuv.c [] []
/src/libavif/third_party/libyuv/source/planar_functions.c [] []
/src/libavif/src/avif.c [] []
/src/libavif/include/avif/internal.h [] []
/src/libavif/tests/gtest/avif_fuzztest_dec.cc [] []
/src/libavif/tests/gtest/avifcolrconverttest.cc [] []
/src/libavif/src/utils.c [] []
/src/libavif/tests/avifyuv.c [] []
/src/libavif/apps/shared/avifexif.c [] []
/src/libavif/tests/gtest/avifincrtest_helpers.cc [] []
/src/libavif/apps/avifgainmaputil/combine_command.cc [] []
/src/libavif/tests/gtest/avifpng16bittest.cc [] []
/src/libavif/src/codec_rav1e.c [] []
/src/libavif/tests/gtest/avifmetadatatest.cc [] []
/src/libavif/src/read.c [] []
/src/libavif/src/codec_libgav1.c [] []
/src/libavif/apps/avifgainmaputil/printmetadata_command.cc [] []
/src/libavif/apps/avifgainmaputil/avifgainmaputil.cc [] []
/src/libavif/tests/gtest/avifallocationtest.cc [] []
/src/libavif/tests/gtest/aviflosslesstest.cc [] []
/src/libavif/third_party/libyuv/source/row_common.c [] []
/src/libavif/apps/shared/avifpng.c [] []
/src/libavif/src/sampletransform.c [] []
/src/libavif/src/codec_aom.c [] []
/src/libavif/src/stream.c [] []
/src/libavif/src/codec_dav1d.c [] []
/src/libavif/src/io.c [] []
/src/libavif/examples/avif_example_decode_streaming.c [] []
/src/libavif/tests/gtest/avif_fuzztest_helpers.cc [] []
/src/libavif/tests/gtest/avifdecodetest.cc [] []
/src/libavif/tests/gtest/avifsampletransformtest.cc [] []
/src/libavif/tests/gtest/avifchangesettingtest.cc [] []
/src/libavif/tests/gtest/avifjpeggainmaptest.cc [] []
/src/libavif/tests/gtest/avif_fuzztest_helpers.h [] []
/src/libavif/tests/gtest/avifgridapitest.cc [] []
/src/libavif/tests/gtest/avifrgbtoyuvtest.cc [] []
/src/libavif/apps/avifdec.c [] []
/src/libavif/tests/gtest/avif_fuzztest_enc_dec_incr.cc [] []
/src/libavif/tests/gtest/avif_fuzztest_read_image.cc [] []
/src/libavif/tests/gtest/avif_fuzztest_dec_incr.cc [] []
/src/libavif/tests/gtest/avifprogressivetest.cc [] []
/src/libavif/tests/gtest/avifclaptest.cc [] []
/src/libavif/apps/avifgainmaputil/tonemap_command.cc [] []
/src/libavif/tests/gtest/avifutilstest.cc [] []
/src/libavif/tests/gtest/avifincrtest_helpers.h [] []
/src/libavif/apps/avifgainmaputil/convert_command.cc [] []
/src/libavif/src/colr.c [] []
/src/libavif/tests/aviftest.c [] []
/src/libavif/third_party/libyuv/source/scale.c [] []
/src/libavif/src/reformat_libyuv.c [] []
/src/libavif/apps/avifgainmaputil/program_command.h [] []
/src/libavif/third_party/libyuv/source/scale_any.c [] []
/src/libavif/src/scale.c [] []
/src/libavif/apps/shared/y4m.c [] []
/src/libavif/src/codec_svt.c [] []
/src/libavif/src/properties.c [] []
/src/libavif/tests/gtest/avif_fuzztest_enc_dec.cc [] []
/src/libavif/tests/gtest/avifimagetest.cc [] []
/src/libavif/src/rawdata.c [] []
/src/libavif/tests/gtest/avif_fuzztest_properties.cc [] []
/src/libavif/tests/gtest/aviftest_helpers.cc [] []
/src/libavif/apps/avifgainmaputil/extractgainmap_command.cc [] []
/src/libavif/src/write.c [] []
/src/libavif/src/exif.c [] []
/src/libavif/apps/avifgainmaputil/program_command.cc [] []
/src/libavif/tests/gtest/avifiostatstest.cc [] []
/src/libavif/tests/gtest/avifrangetest.cc [] []
/src/libavif/src/gainmap.c [] []
/src/libavif/third_party/iccjpeg/iccjpeg.c [] []
/src/libavif/tests/gtest/avif_fuzztest_enc_dec_anim.cc [] []
/src/libavif/apps/shared/avifutil.c [] []
/src/libavif/apps/shared/iccmaker.c [] []
/src/libavif/tests/gtest/aviftest_helpers.h [] []
/src/libavif/src/compliance.cc [] []
/src/libavif/src/obu.c [] []
/src/libavif/src/mem.c [] []
/src/libavif/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc [] []
/src/libavif/tests/gtest/avifreadimagetest.cc [] []
/src/libavif/include/avif/avif_cxx.h [] []
/src/libavif/tests/gtest/avifgainmaptest.cc [] []

Directories in report

Directory
/src/libavif/third_party/libyuv/include/libyuv/
/src/libavif/android_jni/avifandroidjni/src/main/jni/
/src/libavif/tests/gtest/
/src/libavif/include/avif/
/src/libavif/tests/
/src/libavif/examples/
/src/libavif/src/
/src/libavif/apps/shared/
/src/libavif/apps/
/src/libavif/third_party/libyuv/source/
/src/libavif/third_party/iccjpeg/
/src/libavif/apps/avifgainmaputil/
/src/libavif/contrib/gdk-pixbuf/