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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
12 258 store_image_block(astcenc_image&, image_block const&, block_size_descriptor const&, unsigned int, unsigned int, unsigned int, astcenc_swizzle const&) call site: 00258 __assert_fail
11 63 astcenc_context_alloc call site: 00063 __assert_fail
6 142 physical_to_symbolic(block_size_descriptor const&, unsigned char const*, symbolic_compressed_block&) call site: 00142
2 114 astcenc_context_alloc call site: 00114
1 5 validate_block_size(unsigned int, unsigned int, unsigned int) call site: 00005
1 27 astcenc_context_alloc call site: 00027
1 29 ParallelManager::ParallelManager() call site: 00029
1 56 validate_config(astcenc_config&) call site: 00056
1 61 block_size_descriptor* aligned_malloc (unsigned long, unsigned long) call site: 00061

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 astcenc_config_init [function] [call site] 00001
2 validate_cpu_float() [function] [call site] 00002
2 unsigned int astc::max<unsigned int>(unsigned int, unsigned int) [function] [call site] 00003
2 validate_block_size(unsigned int, unsigned int, unsigned int) [function] [call site] 00004
3 is_legal_2d_block_size(unsigned int, unsigned int) [function] [call site] 00005
3 is_legal_3d_block_size(unsigned int, unsigned int, unsigned int) [function] [call site] 00006
2 logf [call site] 00007
2 float astc::max<float>(float, float) [function] [call site] 00008
2 __assert_fail [call site] 00009
2 astc::flt2int_rtn(float) [function] [call site] 00010
2 astc::flt2int_rtn(float) [function] [call site] 00011
2 astc::flt2int_rtn(float) [function] [call site] 00012
2 astc::flt2int_rtn(float) [function] [call site] 00013
2 astc::flt2int_rtn(float) [function] [call site] 00014
2 astc::flt2int_rtn(float) [function] [call site] 00015
2 astc::flt2int_rtn(float) [function] [call site] 00016
2 astc::flt2int_rtn(float) [function] [call site] 00017
2 astc::flt2int_rtn(float) [function] [call site] 00018
2 astc::flt2int_rtn(float) [function] [call site] 00019
2 float astc::max<float>(float, float) [function] [call site] 00020
2 validate_flags(astcenc_profile, unsigned int) [function] [call site] 00021
3 popcount(unsigned long) [function] [call site] 00022
3 popcount(unsigned long) [function] [call site] 00023
2 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00024
1 astcenc_context_alloc [function] [call site] 00025
2 validate_cpu_float() [function] [call site] 00026
2 astcenc_context::astcenc_context() [function] [call site] 00027
3 ParallelManager::ParallelManager() [function] [call site] 00028
4 ParallelManager::reset() [function] [call site] 00029
3 ParallelManager::~ParallelManager() [function] [call site] 00030
2 validate_config(astcenc_config&) [function] [call site] 00031
3 validate_profile(astcenc_profile) [function] [call site] 00032
3 validate_flags(astcenc_profile, unsigned int) [function] [call site] 00033
3 validate_block_size(unsigned int, unsigned int, unsigned int) [function] [call site] 00034
3 float astc::max<float>(float, float) [function] [call site] 00035
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00036
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00037
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00038
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00039
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00040
3 unsigned int astc::max<unsigned int>(unsigned int, unsigned int) [function] [call site] 00041
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00042
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00043
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00044
3 unsigned int astc::clamp<unsigned int>(unsigned int, unsigned int, unsigned int) [function] [call site] 00045
3 float astc::max<float>(float, float) [function] [call site] 00046
3 float astc::max<float>(float, float) [function] [call site] 00047
3 float astc::max<float>(float, float) [function] [call site] 00048
3 float astc::max<float>(float, float) [function] [call site] 00049
3 float astc::max<float>(float, float) [function] [call site] 00050
3 float astc::max<float>(float, float) [function] [call site] 00051
3 float astc::max<float>(float, float) [function] [call site] 00052
3 float astc::max<float>(float, float) [function] [call site] 00053
3 float astc::max<float>(float, float) [function] [call site] 00054
3 float astc::max<float>(float, float) [function] [call site] 00055
3 float astc::max<float>(float, float) [function] [call site] 00056
2 astcenc_context::~astcenc_context() [function] [call site] 00057
2 block_size_descriptor* aligned_malloc<block_size_descriptor>(unsigned long, unsigned long) [function] [call site] 00058
3 unsigned long astc::max<unsigned long>(unsigned long, unsigned long) [function] [call site] 00059
3 unsigned long astc::max<unsigned long>(unsigned long, unsigned long) [function] [call site] 00060
3 posix_memalign [call site] 00061
2 astcenc_context::~astcenc_context() [function] [call site] 00062
2 init_block_size_descriptor(unsigned int, unsigned int, unsigned int, bool, unsigned int, float, block_size_descriptor&) [function] [call site] 00063
3 construct_block_size_descriptor_3d(unsigned int, unsigned int, unsigned int, block_size_descriptor&) [function] [call site] 00064
4 init_decimation_info_3d(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, decimation_info&, dt_init_working_buffers&) [function] [call site] 00065
5 __assert_fail [call site] 00066
5 __assert_fail [call site] 00067
5 unsigned char astc::max<unsigned char>(unsigned char, unsigned char) [function] [call site] 00068
5 unsigned char astc::max<unsigned char>(unsigned char, unsigned char) [function] [call site] 00069
4 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00070
4 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00071
4 decode_block_mode_3d(unsigned int, unsigned int&, unsigned int&, unsigned int&, bool&, unsigned int&, unsigned int&) [function] [call site] 00072
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00073
4 assign_kmeans_texels(block_size_descriptor&) [function] [call site] 00074
5 astc::rand_init(unsigned long*) [function] [call site] 00075
5 astc::rand(unsigned long*) [function] [call site] 00076
6 rotl(unsigned long, int) [function] [call site] 00077
6 rotl(unsigned long, int) [function] [call site] 00078
3 construct_block_size_descriptor_2d(unsigned int, unsigned int, bool, float, block_size_descriptor&) [function] [call site] 00079
4 get_2d_percentile_table(unsigned int, unsigned int) [function] [call site] 00080
5 get_packed_table(int, int) [function] [call site] 00081
4 decode_block_mode_2d(unsigned int, unsigned int&, unsigned int&, bool&, unsigned int&, unsigned int&) [function] [call site] 00082
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00083
4 construct_dt_entry_2d(unsigned int, unsigned int, unsigned int, unsigned int, block_size_descriptor&, dt_init_working_buffers&, unsigned int) [function] [call site] 00084
5 __assert_fail [call site] 00085
5 init_decimation_info_2d(unsigned int, unsigned int, unsigned int, unsigned int, decimation_info&, dt_init_working_buffers&) [function] [call site] 00086
6 __assert_fail [call site] 00087
6 __assert_fail [call site] 00088
6 __assert_fail [call site] 00089
6 __assert_fail [call site] 00090
6 unsigned char astc::max<unsigned char>(unsigned char, unsigned char) [function] [call site] 00091
6 unsigned char astc::max<unsigned char>(unsigned char, unsigned char) [function] [call site] 00092
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00093
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00094
5 __assert_fail [call site] 00095
4 block_mode::get_weight_quant_mode() const [function] [call site] 00096
4 decimation_mode::set_ref_2plane(quant_method) [function] [call site] 00097
4 block_mode::get_weight_quant_mode() const [function] [call site] 00098
4 decimation_mode::set_ref_1plane(quant_method) [function] [call site] 00099
4 __assert_fail [call site] 00100
4 __assert_fail [call site] 00101
4 assign_kmeans_texels(block_size_descriptor&) [function] [call site] 00102
3 init_partition_tables(block_size_descriptor&, bool, unsigned int) [function] [call site] 00103
4 generate_one_partition_info_entry(block_size_descriptor&, unsigned int, unsigned int, unsigned int, partition_info&) [function] [call site] 00104
5 select_partition(int, int, int, int, int, bool) [function] [call site] 00105
6 hash52(unsigned int) [function] [call site] 00106
5 unsigned char astc::min<unsigned char>(unsigned char, unsigned char) [function] [call site] 00107
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00108
5 generate_one_partition_info_entry(block_size_descriptor&, unsigned int, unsigned int, unsigned int, partition_info&) [function] [call site] 00109
5 generate_canonical_partitioning(unsigned int, unsigned char const*, unsigned long*) [function] [call site] 00110
5 compare_canonical_partitionings(unsigned long const*, unsigned long const*) [function] [call site] 00111
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00112
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00113
2 compression_working_buffers* aligned_malloc<compression_working_buffers>(unsigned long, unsigned long) [function] [call site] 00114
2 void aligned_free<block_size_descriptor const>(block_size_descriptor const*) [function] [call site] 00115
2 astcenc_context::~astcenc_context() [function] [call site] 00116
2 prepare_angular_tables() [function] [call site] 00117
3 sinf [call site] 00118
3 cosf [call site] 00119
1 astcenc_context_free [function] [call site] 00120
2 void aligned_free<compression_working_buffers>(compression_working_buffers*) [function] [call site] 00121
2 void aligned_free<block_size_descriptor const>(block_size_descriptor const*) [function] [call site] 00122
2 astcenc_context::~astcenc_context() [function] [call site] 00123
1 astcenc_decompress_image [function] [call site] 00124
2 validate_decompression_swizzle(astcenc_swizzle const&) [function] [call site] 00125
3 validate_decompression_swz(astcenc_swz) [function] [call site] 00126
3 validate_decompression_swz(astcenc_swz) [function] [call site] 00127
3 validate_decompression_swz(astcenc_swz) [function] [call site] 00128
3 validate_decompression_swz(astcenc_swz) [function] [call site] 00129
2 astcenc_decompress_reset [function] [call site] 00130
3 ParallelManager::reset() [function] [call site] 00131
2 ParallelManager::init(unsigned int, void (*)(float)) [function] [call site] 00132
3 float astc::max<float>(float, float) [function] [call site] 00133
2 ParallelManager::get_task_assignment(unsigned int, unsigned int&) [function] [call site] 00134
3 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00135
2 physical_to_symbolic(block_size_descriptor const&, unsigned char const*, symbolic_compressed_block&) [function] [call site] 00136
3 read_bits(int, int, unsigned char const*) [function] [call site] 00137
3 read_bits(int, int, unsigned char const*) [function] [call site] 00138
3 read_bits(int, int, unsigned char const*) [function] [call site] 00139
3 read_bits(int, int, unsigned char const*) [function] [call site] 00140
3 read_bits(int, int, unsigned char const*) [function] [call site] 00141
3 read_bits(int, int, unsigned char const*) [function] [call site] 00142
3 read_bits(int, int, unsigned char const*) [function] [call site] 00143
3 read_bits(int, int, unsigned char const*) [function] [call site] 00144
3 read_bits(int, int, unsigned char const*) [function] [call site] 00145
3 read_bits(int, int, unsigned char const*) [function] [call site] 00146
3 read_bits(int, int, unsigned char const*) [function] [call site] 00147
3 read_bits(int, int, unsigned char const*) [function] [call site] 00148
3 block_size_descriptor::get_block_mode(unsigned int) const [function] [call site] 00149
4 __assert_fail [call site] 00150
3 block_size_descriptor::get_decimation_info(unsigned int) const [function] [call site] 00151
3 __assert_fail [call site] 00152
3 read_bits(int, int, unsigned char const*) [function] [call site] 00153
3 __assert_fail [call site] 00154
3 bitrev8(int) [function] [call site] 00155
3 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00156
3 decode_ise(quant_method, unsigned int, unsigned char const*, unsigned char*, unsigned int) [function] [call site] 00157
4 __assert_fail [call site] 00158
4 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00159
4 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00160
4 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00161
4 __assert_fail [call site] 00162
4 __assert_fail [call site] 00163
3 read_bits(int, int, unsigned char const*) [function] [call site] 00164
3 read_bits(int, int, unsigned char const*) [function] [call site] 00165
3 read_bits(int, int, unsigned char const*) [function] [call site] 00166
3 read_bits(int, int, unsigned char const*) [function] [call site] 00167
3 decode_ise(quant_method, unsigned int, unsigned char const*, unsigned char*, unsigned int) [function] [call site] 00168
3 read_bits(int, int, unsigned char const*) [function] [call site] 00169
2 decompress_symbolic_block(astcenc_profile, block_size_descriptor const&, int, int, int, symbolic_compressed_block const&, image_block&) [function] [call site] 00170
3 error_color_nan() [function] [call site] 00171
4 astc::uint_as_float(unsigned int) [function] [call site] 00172
3 error_color_nan() [function] [call site] 00173
3 error_color_nan() [function] [call site] 00174
3 error_color_nan() [function] [call site] 00175
3 get_u8_component_mask(astcenc_profile, image_block const&) [function] [call site] 00176
3 __assert_fail [call site] 00177
3 sf16_to_float(unsigned short) [function] [call site] 00178
4 sf16_to_sf32(unsigned short) [function] [call site] 00179
5 clz32(unsigned int) [function] [call site] 00180
4 astc::uint_as_float(unsigned int) [function] [call site] 00181
3 error_color_nan() [function] [call site] 00182
3 sf16_to_float(unsigned short) [function] [call site] 00183
3 block_size_descriptor::get_partition_info(unsigned int, unsigned int) const [function] [call site] 00184
4 __assert_fail [call site] 00185
4 block_size_descriptor::get_partition_table(unsigned int) const [function] [call site] 00186
4 __assert_fail [call site] 00187
3 block_size_descriptor::get_block_mode(unsigned int) const [function] [call site] 00188
3 block_size_descriptor::get_decimation_info(unsigned int) const [function] [call site] 00189
3 unpack_weights(block_size_descriptor const&, symbolic_compressed_block const&, decimation_info const&, bool, int*, int*) [function] [call site] 00190
4 __assert_fail [call site] 00191
4 __assert_fail [call site] 00192
3 get_u8_component_mask(astcenc_profile, image_block const&) [function] [call site] 00193
3 unpack_color_endpoints(astcenc_profile, int, unsigned char const*, bool&, bool&, vint4&, vint4&) [function] [call site] 00194
4 luminance_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00195
4 luminance_delta_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00196
5 int astc::min<int>(int, int) [function] [call site] 00197
4 hdr_luminance_small_range_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00198
4 hdr_luminance_large_range_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00199
4 luminance_alpha_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00200
4 luminance_alpha_delta_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00201
5 int astc::clamp<int>(int, int, int) [function] [call site] 00202
5 int astc::clamp<int>(int, int, int) [function] [call site] 00203
4 rgb_scale_unpack(vint4, int, vint4&, vint4&) [function] [call site] 00204
4 rgb_scale_alpha_unpack(vint4, unsigned char, unsigned char, vint4&, vint4&) [function] [call site] 00205
4 hdr_rgbo_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00206
5 int astc::max<int>(int, int) [function] [call site] 00207
5 int astc::max<int>(int, int) [function] [call site] 00208
5 int astc::max<int>(int, int) [function] [call site] 00209
5 int astc::max<int>(int, int) [function] [call site] 00210
5 int astc::max<int>(int, int) [function] [call site] 00211
5 int astc::max<int>(int, int) [function] [call site] 00212
4 rgb_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00213
5 rgba_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00214
4 rgb_delta_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00215
5 rgba_delta_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00216
4 hdr_rgb_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00217
5 astc::int_as_uint(int) [function] [call site] 00218
5 astc::uint_as_int(unsigned int) [function] [call site] 00219
5 astc::int_as_uint(int) [function] [call site] 00220
5 astc::uint_as_int(unsigned int) [function] [call site] 00221
5 astc::int_as_uint(int) [function] [call site] 00222
5 astc::uint_as_int(unsigned int) [function] [call site] 00223
5 astc::int_as_uint(int) [function] [call site] 00224
5 astc::uint_as_int(unsigned int) [function] [call site] 00225
5 astc::int_as_uint(int) [function] [call site] 00226
5 astc::uint_as_int(unsigned int) [function] [call site] 00227
5 astc::int_as_uint(int) [function] [call site] 00228
5 astc::uint_as_int(unsigned int) [function] [call site] 00229
5 astc::int_as_uint(int) [function] [call site] 00230
5 astc::uint_as_int(unsigned int) [function] [call site] 00231
5 astc::int_as_uint(int) [function] [call site] 00232
5 astc::uint_as_int(unsigned int) [function] [call site] 00233
5 int astc::clamp<int>(int, int, int) [function] [call site] 00234
5 int astc::clamp<int>(int, int, int) [function] [call site] 00235
5 int astc::clamp<int>(int, int, int) [function] [call site] 00236
5 int astc::clamp<int>(int, int, int) [function] [call site] 00237
5 int astc::clamp<int>(int, int, int) [function] [call site] 00238
5 int astc::clamp<int>(int, int, int) [function] [call site] 00239
4 rgba_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00240
4 rgba_delta_unpack(vint4, vint4, vint4&, vint4&) [function] [call site] 00241
4 hdr_rgb_ldr_alpha_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00242
5 hdr_rgb_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00243
4 hdr_rgb_hdr_alpha_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00244
5 hdr_rgb_unpack(unsigned char const*, vint4&, vint4&) [function] [call site] 00245
5 hdr_alpha_unpack(unsigned char const*, int&, int&) [function] [call site] 00246
6 astc::int_as_uint(int) [function] [call site] 00247
6 astc::uint_as_int(unsigned int) [function] [call site] 00248
6 int astc::clamp<int>(int, int, int) [function] [call site] 00249
3 lerp_color_int(vmask4, vint4, vint4, vint4) [function] [call site] 00250
3 decode_texel(vint4, vmask4) [function] [call site] 00251
4 __assert_fail [call site] 00252
4 sf16_to_float(unsigned short) [function] [call site] 00253
2 store_image_block(astcenc_image&, image_block const&, block_size_descriptor const&, unsigned int, unsigned int, unsigned int, astcenc_swizzle const&) [function] [call site] 00254
3 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00255
3 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00256
3 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00257
3 unsigned int astc::min<unsigned int>(unsigned int, unsigned int) [function] [call site] 00258
3 astc::sqrt(float) [function] [call site] 00259
3 float_to_sf16(float) [function] [call site] 00260
4 astc::float_as_uint(float) [function] [call site] 00261
4 sf32_to_sf16(unsigned int, roundmode) [function] [call site] 00262
5 rtup_shift32(unsigned int, unsigned int) [function] [call site] 00263
5 rtna_shift32(unsigned int, unsigned int) [function] [call site] 00264
5 rtne_shift32(unsigned int, unsigned int) [function] [call site] 00265
3 image_block::texel(unsigned int) const [function] [call site] 00266
3 float_to_sf16(float) [function] [call site] 00267
3 __assert_fail [call site] 00268
3 image_block::texel(unsigned int) const [function] [call site] 00269
3 astc::sqrt(float) [function] [call site] 00270
2 ParallelManager::complete_task_assignment(unsigned int) [function] [call site] 00271
1 astcenc_context_free [function] [call site] 00272