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
8854
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'] 13 0 29 3 3 545 0 2766 2766
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 357 0 1623 203
aomCodecEncodeImage /src/libavif/src/codec_aom.c 11 ['avifCodec*', 'avifEncoder*', 'avifImage*', 'avifBool', 'int', 'int', 'int', 'avifEncoderChanges', 'avifBool', 'avifAddImageFlags', 'avifCodecEncodeOutput*'] 4 0 383 99 123 59 0 227 190
avifEncodeImages /src/libavif/apps/avifenc.c 7 ['avifSettings*', 'avifInput*', 'avifInputFile*', 'avifImage*', 'avifImage**', 'avifRWData*', 'avifEncodedByteSizes*'] 15 0 69 16 21 415 0 1956 174
avifImageComputeGainMap /src/libavif/src/gainmap.c 4 ['avifImage*', 'avifImage*', 'avifGainMap*', 'avifDiagnostics*'] 9 0 48 8 15 188 1 879 133
avmCodecEncodeImage /src/libavif/src/codec_avm.c 11 ['avifCodec*', 'avifEncoder*', 'avifImage*', 'avifBool', 'int', 'int', 'int', 'avifEncoderChanges', 'avifBool', 'avifAddImageFlags', 'avifCodecEncodeOutput*'] 5 0 345 85 105 60 0 209 117
avif::ToneMapImageAndCompareToReference /src/libavif/tests/gtest/avifgainmaptest.cc 9 ['avifImage*', 'avifGainMap', 'float', 'int', 'avifTransferCharacteristics', 'avifRGBFormat', 'avifImage*', 'float', 'float'] 8 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'] 16 0 25 6 11 453 0 2375 62

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

Functions statically reachable by fuzzers
65.0%
608 / 939
Cyclomatic complexity statically reachable by fuzzers
81.0%
4484 / 5551

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*) 33 2 6.060%
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 47 45.63%
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 39 19 48.71%
av1_convolve_2d_facade 39 19 48.71%
av1_highbd_convolve_2d_facade 45 17 37.77%
av1_setup_skip_mode_allowed 61 9 14.75%
av1_loop_restoration_dealloc 41 19 46.34%
filter_4xh 81 25 30.86%
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 55 52.38%
read_uncompressed_header 522 154 29.50%
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%
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 62 17 27.41%
convolve_2d_sr_ver_2tap_half_avx2 108 23 21.29%
av1_convolve_y_sr_specialized_avx2 729 302 41.42%
av1_convolve_x_sr_specialized_avx2 338 137 40.53%
dav1d_decode_frame_init 348 155 44.54%
dav1d_submit_frame 376 136 36.17%
decode_sb 259 133 51.35%
decode_b 1149 228 19.84%
dav1d_parse_obus 409 108 26.40%
parse_seq_hdr 167 80 47.90%
parse_frame_hdr 643 184 28.61%
get_dc_sign_ctx 149 69 46.30%
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 18 51.42%
compute_corner_list 60 28 46.66%
av1_highbd_convolve_y_sr_ssse3 198 100 50.50%
aom_highbd_10_sub_pixel_variance8x8_sse2 42 23 54.76%
av1_realloc_and_scale_if_required 45 9 20.0%
convolve_2d_sr_general_avx2 90 34 37.77%
av1_convolve_y_sr_general_avx2 369 134 36.31%
av1_convolve_x_sr_general_avx2 263 69 26.23%
av1_quantize_b_facade 65 24 36.92%
av1_highbd_quantize_b_facade 65 24 36.92%
av1_set_quantizer 78 31 39.74%
av1_write_sequence_header_obu 64 22 34.37%
write_sequence_header 54 16 29.62%
write_uncompressed_header_obu 282 78 27.65%
encode_loopfilter 43 20 46.51%
encode_restoration_mode 66 3 4.545%
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 54 6 11.11%
remux_tiles 71 38 53.52%
av1_find_cnn_layer_output_size 35 15 42.85%
av1_cnn_predict_c 145 79 54.48%
av1_cnn_convolve 56 23 41.07%
av1_setup_sms_tree 40 2 5.0%
av1_configure_buffer_updates 53 14 26.41%
av1_get_refresh_frame_flags 73 7 9.589%
av1_get_ref_frames 155 62 40.0%
choose_frame_source 50 26 52.0%
adjust_frame_rate 46 19 41.30%
choose_primary_ref_frame 31 8 25.80%
denoise_and_encode 132 35 26.51%
encode_nonrd_sb 49 23 46.93%
init_ref_frame_space 83 41 49.39%
setup_delta_q 75 29 38.66%
encode_frame_internal 364 180 49.45%
setup_prune_ref_frame_mask 46 7 15.21%
av1_get_q_for_deltaq_objective 83 22 26.50%
av1_receive_raw_frame 54 21 38.88%
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 253 108 42.68%
encode_with_recode_loop_and_filter 88 46 52.27%
encode_without_recode 192 99 51.56%
cdef_restoration_frame 50 10 20.0%
av1_apply_active_map 43 23 53.48%
av1_set_size_dependent_vars 60 20 33.33%
av1_update_film_grain_parameters 35 11 31.42%
av1_scale_references 99 28 28.28%
av1_select_sb_size 50 24 48.0%
av1_finalize_encoded_frame 33 16 48.48%
av1_compute_num_fp_contexts 33 6 18.18%
is_fpmt_config 33 8 24.24%
lpf_pipeline_mt_init 50 18 36.0%
av1_firstpass_info_init 34 18 52.94%
av1_refine_integerized_param 73 21 28.76%
construct_multi_layer_gf_structure 192 71 36.97%
set_multi_layer_params 75 7 9.333%
av1_highbd_fwd_txfm 66 36 54.54%
rd_pick_filter_intra_sby 68 21 30.88%
intra_mode_info_cost_uv 41 20 48.78%
intra_mode_info_cost_y 57 26 45.61%
calc_int_sad_list 43 21 48.83%
setup_center_error 43 22 51.16%
search_motion_mode 122 66 54.09%
set_early_term_based_on_uv_plane 61 21 34.42%
handle_screen_content_mode_nonrd 101 17 16.83%
setup_block_rdmult 35 17 48.57%
encode_b 113 54 47.78%
update_stats 230 30 13.04%
prune_partitions_after_none 42 17 40.47%
av1_get_second_pass_params 188 103 54.78%
av1_twopass_postencode_update 167 64 38.32%
process_first_pass_stats 41 16 39.02%
find_next_key_frame 151 32 21.19%
adjust_boost_bits_for_target_level 44 15 34.09%
identify_regions 86 3 3.488%
adjust_unstable_region_bounds 101 18 17.82%
find_blending_regions 133 59 44.36%
cleanup_blendings 34 5 14.70%
calculate_gf_length 183 20 10.92%
define_gf_group 91 21 23.07%
get_cdef_filter_strengths 40 19 47.5%
av1_pick_filter_level 127 59 46.45%
finer_search_wiener 93 5 5.376%
av1_rc_drop_frame 48 15 31.25%
av1_get_one_pass_rt_params 131 71 54.19%
set_rate_correction_factor 35 11 31.42%
adjust_q_cbr 122 62 50.81%
calc_active_best_quality_no_stats_cbr 48 26 54.16%
rc_pick_q_and_bounds 59 18 30.50%
get_intra_q_and_bounds 68 15 22.05%
recode_loop_update_q 144 13 9.027%
av1_fill_mode_rates 212 116 54.71%
rd_pick_intrabc_mode_sb 160 66 41.25%
init_mode_skip_mask 133 68 51.12%
default_skip_mask 31 5 16.12%
inter_mode_search_order_independent_skip 102 54 52.94%
rd_pick_skip_mode 102 55 53.92%
prune_ref_by_selective_ref_frame 53 24 45.28%
store_winner_mode_stats 49 19 38.77%
av1_set_speed_features_qindex_dependent 165 64 38.78%
set_rt_speed_feature_framesize_dependent 302 63 20.86%
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 26 50.98%
recon_intra 36 16 44.44%
choose_largest_tx_size 88 21 23.86%
chroma_check 91 27 29.67%
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 508 183 36.02% ['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']
avifEncoderDataCreateItem 31 15 48.38% ['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 28 39.43% ['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 39 10 25.64%
start_pass 173 39 22.54%
j12init_color_deconverter 151 63 41.72%
gray_rgb_convert 36 8 22.22%
null_convert 49 21 42.85%
j16init_color_deconverter 151 55 36.42%
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 81 50.0%
png_zstream_error 36 14 38.88%
png_check_IHDR 98 32 32.65%
png_destroy_gamma_table 49 19 38.77%
png_format_number 46 20 43.47%
png_set_longjmp_fn 37 11 29.72%
png_read_row 150 64 42.66%
png_init_read_transformations 365 71 19.45%
png_init_rgb_transformations 50 18 36.0%
png_do_expand 194 69 35.56%
png_handle_unknown 86 27 31.39%
png_combine_row 252 24 9.523%
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_sPLT 92 48 52.17%
SharpYuvGammaToLinear 52 5 9.615%
SharpYuvLinearToGamma 52 5 9.615%
x86CPUInfo 45 19 42.22%
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();
}

codec_avm.c

Target file: /src/libavif/src/codec_avm.c
Target functions: avmCodecEncodeImage
#include "ada_fuzz_header.h"

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

  /* target avmCodecEncodeImage */
  UNKNOWN_TYPE unknown_34;
  UNKNOWN_TYPE unknown_35;
  UNKNOWN_TYPE unknown_36;
  UNKNOWN_TYPE unknown_37;
  int new_var38 = ada_safe_get_int();
  int new_var39 = ada_safe_get_int();
  int new_var40 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_41;
  UNKNOWN_TYPE unknown_42;
  UNKNOWN_TYPE unknown_43;
  UNKNOWN_TYPE unknown_44;
  avmCodecEncodeImage(unknown_34, unknown_35, unknown_36, unknown_37, new_var38, new_var39, new_var40, unknown_41, unknown_42, unknown_43, unknown_44);

  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_45;
  UNKNOWN_TYPE unknown_46;
  UNKNOWN_TYPE unknown_47;
  int new_var48 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_49;
  UNKNOWN_TYPE unknown_50;
  UNKNOWN_TYPE unknown_51;
  UNKNOWN_TYPE unknown_52;
  UNKNOWN_TYPE unknown_53;
  avif::ToneMapImageAndCompareToReference(unknown_45, unknown_46, unknown_47, new_var48, unknown_49, unknown_50, unknown_51, unknown_52, unknown_53);

  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_54;
  UNKNOWN_TYPE unknown_55;
  UNKNOWN_TYPE unknown_56;
  UNKNOWN_TYPE unknown_57;
  int new_var58 = ada_safe_get_int();
  int new_var59 = ada_safe_get_int();
  int new_var60 = ada_safe_get_int();
  UNKNOWN_TYPE unknown_61;
  UNKNOWN_TYPE unknown_62;
  UNKNOWN_TYPE unknown_63;
  UNKNOWN_TYPE unknown_64;
  rav1eCodecEncodeImage(unknown_54, unknown_55, unknown_56, unknown_57, new_var58, new_var59, new_var60, unknown_61, unknown_62, unknown_63, unknown_64);

  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_65;
  UNKNOWN_TYPE unknown_66;
  UNKNOWN_TYPE unknown_67;
  UNKNOWN_TYPE unknown_68;
  UNKNOWN_TYPE unknown_69;
  UNKNOWN_TYPE unknown_70;
  UNKNOWN_TYPE unknown_71;
  avif::testutil::EncodeDecodeGridValid(unknown_65, unknown_66, unknown_67, unknown_68, unknown_69, unknown_70, unknown_71);

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

Directories in report

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