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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 65 construct_block_size_descriptor_2d(unsignedint,unsignedint,bool,float,block_size_descriptor&) call site: 00000 /src/astc-encoder/Source/./astcenc_block_sizes.cpp:881
0 0 None 0 21 construct_block_size_descriptor_3d(unsignedint,unsignedint,unsignedint,block_size_descriptor&) call site: 00000 /src/astc-encoder/Source/./astcenc_block_sizes.cpp:1126
0 0 None 0 0 get_ise_sequence_bitcount(unsignedint,quant_method) call site: 00000 /src/astc-encoder/Source/./astcenc_integer_sequence.cpp:424
0 0 None 0 0 build_partition_table_for_one_partition_count(block_size_descriptor&,bool,unsignedint,unsignedint,partition_info*,unsignedlong*) call site: 00000 /src/astc-encoder/Source/./astcenc_partition_tables.cpp:395

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __cxa_guard_acquire [call site] 00001
1 bsd_initializer() [function] [call site] 00002
2 init_block_size_descriptor(unsigned int, unsigned int, unsigned int, bool, unsigned int, float, block_size_descriptor&) [function] [call site] 00003
3 construct_block_size_descriptor_3d(unsigned int, unsigned int, unsigned int, block_size_descriptor&) [function] [call site] 00004
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] 00005
5 __assert_fail [call site] 00006
5 __assert_fail [call site] 00007
5 unsigned char astc::max (unsigned char, unsigned char) [function] [call site] 00008
5 unsigned char astc::max (unsigned char, unsigned char) [function] [call site] 00009
4 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00010
4 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00011
4 decode_block_mode_3d(unsigned int, unsigned int&, unsigned int&, unsigned int&, bool&, unsigned int&, unsigned int&) [function] [call site] 00012
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00013
4 assign_kmeans_texels(block_size_descriptor&) [function] [call site] 00014
5 astc::rand_init(unsigned long*) [function] [call site] 00015
5 astc::rand(unsigned long*) [function] [call site] 00016
6 rotl(unsigned long, int) [function] [call site] 00017
6 rotl(unsigned long, int) [function] [call site] 00018
3 construct_block_size_descriptor_2d(unsigned int, unsigned int, bool, float, block_size_descriptor&) [function] [call site] 00019
4 get_2d_percentile_table(unsigned int, unsigned int) [function] [call site] 00020
5 get_packed_table(int, int) [function] [call site] 00021
4 decode_block_mode_2d(unsigned int, unsigned int&, unsigned int&, bool&, unsigned int&, unsigned int&) [function] [call site] 00022
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00023
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] 00024
5 __assert_fail [call site] 00025
5 init_decimation_info_2d(unsigned int, unsigned int, unsigned int, unsigned int, decimation_info&, dt_init_working_buffers&) [function] [call site] 00026
6 __assert_fail [call site] 00027
6 __assert_fail [call site] 00028
6 __assert_fail [call site] 00029
6 __assert_fail [call site] 00030
6 unsigned char astc::max (unsigned char, unsigned char) [function] [call site] 00031
6 unsigned char astc::max (unsigned char, unsigned char) [function] [call site] 00032
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00033
5 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00034
5 __assert_fail [call site] 00035
4 block_mode::get_weight_quant_mode() const [function] [call site] 00036
4 block_mode::get_weight_quant_mode() const [function] [call site] 00037
4 __assert_fail [call site] 00038
4 __assert_fail [call site] 00039
4 assign_kmeans_texels(block_size_descriptor&) [function] [call site] 00040
3 init_partition_tables(block_size_descriptor&, bool, unsigned int) [function] [call site] 00041
4 generate_one_partition_info_entry(block_size_descriptor&, unsigned int, unsigned int, unsigned int, partition_info&) [function] [call site] 00042
5 select_partition(int, int, int, int, int, bool) [function] [call site] 00043
6 hash52(unsigned int) [function] [call site] 00044
5 unsigned char astc::min (unsigned char, unsigned char) [function] [call site] 00045
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00046
5 generate_one_partition_info_entry(block_size_descriptor&, unsigned int, unsigned int, unsigned int, partition_info&) [function] [call site] 00047
5 generate_canonical_partitioning(unsigned int, unsigned char const*, unsigned long*) [function] [call site] 00048
5 compare_canonical_partitionings(unsigned long const*, unsigned long const*) [function] [call site] 00049
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00050
4 build_partition_table_for_one_partition_count(block_size_descriptor&, bool, unsigned int, unsigned int, partition_info*, unsigned long*) [function] [call site] 00051
1 physical_to_symbolic(block_size_descriptor const&, physical_compressed_block const&, symbolic_compressed_block&) [function] [call site] 00052
2 read_bits(int, int, unsigned char const*) [function] [call site] 00053
2 read_bits(int, int, unsigned char const*) [function] [call site] 00054
2 read_bits(int, int, unsigned char const*) [function] [call site] 00055
2 read_bits(int, int, unsigned char const*) [function] [call site] 00056
2 read_bits(int, int, unsigned char const*) [function] [call site] 00057
2 read_bits(int, int, unsigned char const*) [function] [call site] 00058
2 read_bits(int, int, unsigned char const*) [function] [call site] 00059
2 read_bits(int, int, unsigned char const*) [function] [call site] 00060
2 read_bits(int, int, unsigned char const*) [function] [call site] 00061
2 read_bits(int, int, unsigned char const*) [function] [call site] 00062
2 read_bits(int, int, unsigned char const*) [function] [call site] 00063
2 read_bits(int, int, unsigned char const*) [function] [call site] 00064
2 block_size_descriptor::get_block_mode(unsigned int) const [function] [call site] 00065
3 __assert_fail [call site] 00066
2 block_size_descriptor::get_decimation_info(unsigned int) const [function] [call site] 00067
2 __assert_fail [call site] 00068
2 read_bits(int, int, unsigned char const*) [function] [call site] 00069
2 __assert_fail [call site] 00070
2 bitrev8(int) [function] [call site] 00071
2 get_ise_sequence_bitcount(unsigned int, quant_method) [function] [call site] 00072
2 decode_ise(quant_method, unsigned int, unsigned char const*, unsigned char*, unsigned int) [function] [call site] 00073
3 __assert_fail [call site] 00074
3 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00075
3 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00076
3 read_bits(unsigned int, unsigned int, unsigned char const*) [function] [call site] 00077
3 __assert_fail [call site] 00078
3 __assert_fail [call site] 00079
2 read_bits(int, int, unsigned char const*) [function] [call site] 00080
2 read_bits(int, int, unsigned char const*) [function] [call site] 00081
2 read_bits(int, int, unsigned char const*) [function] [call site] 00082
2 decode_ise(quant_method, unsigned int, unsigned char const*, unsigned char*, unsigned int) [function] [call site] 00083
2 read_bits(int, int, unsigned char const*) [function] [call site] 00084