Fuzz introspector: fuzz_roundtrip_cpp_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
118 8 HashTable4KU16::new call site: 00008 FrameDecoder::read_to_end
59 127 SliceSink::capacity call site: 00127 BlockInfo::read
11 195 io::Result::extend_from_slice call site: 00195 FrameDecoder::read_to_end
5 0 EP call site: 00000
4 188 SliceSink::extend_from_slice_wild call site: 00188 short_copy

Fuzzer calltree

0 fuzz_target [function] [call site] 00000
1 lz4_flex::compress [function] [call site] 00001
2 lz4_flex::frame::FrameDecoder::new [function] [call site] 00002
3 CompressTable::default [function] [call site] 00003
4 CompressTable::Small [function] [call site] 00004
4 HashTable4KU16::new [function] [call site] 00005
5 into_boxed_slice [function] [call site] 00006
3 CompressTable::default [function] [call site] 00009
3 XxHash32::with_seed [function] [call site] 00010
2 TrackWriteSize::new [function] [call site] 00011
2 FrameDecoder::read_to_end [function] [call site] 00012
3 FrameDecoder::fill_buf [function] [call site] 00013
4 FrameDecoder::read_more [function] [call site] 00014
5 FrameDecoder::read_frame_info [function] [call site] 00016
6 FrameInfo::read [function] [call site] 00017
7 read_exact [function] [call site] 00018
7 u32::from_le_bytes [function] [call site] 00019
7 CompressTable::default [function] [call site] 00021
8 CompressTable::Small [function] [call site] 00022
8 HashTable4KU16::new [function] [call site] 00023
7 read_exact [function] [call site] 00025
7 u32::from_le_bytes [function] [call site] 00026
7 Error::SkippableFrame [function] [call site] 00028
7 read_exact [function] [call site] 00030
7 Error::UnsupportedVersion [function] [call site] 00032
7 Error::UnsupportedBlocksize [function] [call site] 00035
7 read_exact [function] [call site] 00036
7 u64::from_le_bytes [function] [call site] 00039
7 read_exact [function] [call site] 00040
7 u32::from_le_bytes [function] [call site] 00042
7 read_exact [function] [call site] 00043
7 XxHash32::with_seed [function] [call site] 00044
7 TrackWriteSize::write [function] [call site] 00045
8 TrackWriteSize::write [function] [call site] 00046
7 &[u8]::len [function] [call site] 00048
7 FrameEncoder::auto_finish [function] [call site] 00050
6 read_exact [function] [call site] 00055
6 u32::from_le_bytes [function] [call site] 00056
6 FrameInfo::read [function] [call site] 00059
6 read_exact [function] [call site] 00061
6 read_exact [function] [call site] 00073
6 FrameInfo::read [function] [call site] 00074
7 read_exact [function] [call site] 00075
7 u32::from_le_bytes [function] [call site] 00076
7 CompressTable::default [function] [call site] 00078
7 read_exact [function] [call site] 00080
7 u32::from_le_bytes [function] [call site] 00081
7 Error::SkippableFrame [function] [call site] 00083
7 read_exact [function] [call site] 00085
7 Error::UnsupportedVersion [function] [call site] 00087
7 Error::UnsupportedBlocksize [function] [call site] 00090
7 read_exact [function] [call site] 00091
7 u64::from_le_bytes [function] [call site] 00094
7 read_exact [function] [call site] 00095
7 u32::from_le_bytes [function] [call site] 00097
7 read_exact [function] [call site] 00098
7 XxHash32::with_seed [function] [call site] 00099
7 TrackWriteSize::write [function] [call site] 00100
7 &[u8]::len [function] [call site] 00101
7 FrameEncoder::auto_finish [function] [call site] 00103
6 compress_into [function] [call site] 00108
7 compress_into_sink_with_dict::<false> [function] [call site] 00109
7 SliceSink::new [function] [call site] 00110
6 BlockSize::get_size [function] [call site] 00111
6 HashTable4KU16::clear [function] [call site] 00112
7 SliceSink::extend_with_fill [function] [call site] 00113
8 SliceSink::extend_with_fill [function] [call site] 00114
6 HashTable4KU16::clear [function] [call site] 00115
6 reserve_exact [function] [call site] 00116
6 reserve_exact [function] [call site] 00117
6 XxHash32::with_seed [function] [call site] 00119
5 FrameDecoder::read_block [function] [call site] 00122
6 BlockSize::get_size [function] [call site] 00125
6 SliceSink::capacity [function] [call site] 00126
6 read_exact [function] [call site] 00129
6 BlockInfo::read [function] [call site] 00133
7 read_exact [function] [call site] 00134
7 u32::from_le_bytes [function] [call site] 00135
7 BlockInfo::Uncompressed [function] [call site] 00138
7 BlockInfo::Compressed [function] [call site] 00140
6 compress_into [function] [call site] 00142
6 read_exact [function] [call site] 00143
6 vec_resize_and_get_mut [function] [call site] 00144
7 &mut [call site] 00145
7 &mut [call site] 00146
6 FrameDecoder::read_checksum [function] [call site] 00147
7 size_of::<u32> [function] [call site] 00148
7 Vec::read_exact [function] [call site] 00149
7 u32::from_le_bytes [function] [call site] 00150
6 FrameDecoder::check_block_checksum [function] [call site] 00152
7 XxHash32::with_seed [function] [call site] 00153
7 TrackWriteSize::write [function] [call site] 00154
7 FrameEncoder::auto_finish [function] [call site] 00155
7 compress_into [function] [call site] 00157
6 compress_into [function] [call site] 00160
6 read_exact [function] [call site] 00161
6 vec_resize_and_get_mut [function] [call site] 00162
6 FrameDecoder::read_checksum [function] [call site] 00163
6 FrameDecoder::check_block_checksum [function] [call site] 00164
6 split_at_mut [function] [call site] 00165
6 crate::block::decompress::decompress_internal::<true, [call site] 00166
6 SliceSink::new [function] [call site] 00167
6 crate::block::decompress::decompress_internal::<false, [call site] 00168
6 { [call site] 00169
0 block::WINDOW_SIZE, [call site] 00170
0 sink::vec_sink_for_decompression [function] [call site] 00171
7 impl [call site] 00172
7 SliceSink::new [function] [call site] 00173
6 compress_into [function] [call site] 00176
6 FrameDecoder::read_checksum [function] [call site] 00177
6 FrameEncoder::auto_finish [function] [call site] 00178
6 compress_into [function] [call site] 00180
6 TrackWriteSize::write [function] [call site] 00182
4 Ok [function] [call site] 00184
3 Ok [function] [call site] 00185
3 io::Result::extend_from_slice [function] [call site] 00186
4 SliceSink::extend_from_slice_wild [function] [call site] 00187
5 fastcpy::slice_copy [function] [call site] 00188
6 short_copy [function] [call site] 00189
7 double_copy_trick::<2> [function] [call site] 00190
6 double_copy_trick::<4> [function] [call site] 00191
6 double_copy_trick::<8> [function] [call site] 00192
6 wild_copy_from_src::<16> [function] [call site] 00193
5 &[u8]::len [function] [call site] 00194
4 &[u8]::len [function] [call site] 00195
3 len [function] [call site] 00196
3 FrameDecoder::consume [function] [call site] 00197
3 Result::kind [function] [call site] 00198
3 Err [function] [call site] 00199
2 Ok [function] [call site] 00200
1 lzzzz::lz4::decompress [function] [call site] 00201
2 lz4_flex::frame::FrameDecoder::new [function] [call site] 00202
2 TrackWriteSize::new [function] [call site] 00203
2 FrameDecoder::read_to_end [function] [call site] 00204
1 Result::unwrap [function] [call site] 00206