Fuzz introspector: bzip2_fd
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
960 960 1 :

['BZ2_bzWriteClose']

962 962 BZ2_bzclose call site: 00187 /src/bzip2/bzlib.c:1521
6 407 4 :

['BZ2_bzDecompress', 'ferror', 'fread', 'myfeof']

6 407 BZ2_bzRead call site: 00185 /src/bzip2/bzlib.c:1204
4 4 2 :

['strcmp', 'fopen']

6 111 bzopen_or_bzdopen call site: 00000 /src/bzip2/bzlib.c:1420
2 2 1 :

['ungetc']

2 2 myfeof call site: 00156 /src/bzip2/bzlib.c:909
2 2 1 :

['fclose']

2 2 bzopen_or_bzdopen call site: 00000 /src/bzip2/bzlib.c:1446
0 57 1 :

['BZ2_bzWriteOpen']

2 59 bzopen_or_bzdopen call site: 00000 /src/bzip2/bzlib.c:1436
0 11 1 :

['add_pair_to_block']

0 11 copy_input_until_stop call site: 00031 /src/bzip2/bzlib.c:316
0 0 None 94 371 BZ2_bzDecompress call site: 00160 /src/bzip2/bzlib.c:819
0 0 None 63 226 sendMTFValues call site: 00088 /src/bzip2/compress.c:261
0 0 None 54 217 sendMTFValues call site: 00090 /src/bzip2/compress.c:302
0 0 None 54 217 sendMTFValues call site: 00091 /src/bzip2/compress.c:436
0 0 None 27 109 mainSort call site: 00053 /src/bzip2/blocksort.c:893

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 strdup [call site] 00001
1 perror [call site] 00002
1 abort [call site] 00003
1 mkstemp [call site] 00004
1 perror [call site] 00005
1 abort [call site] 00006
1 fdopen [call site] 00007
1 perror [call site] 00008
1 close [call site] 00009
1 BZ2_bzerror [function] [call site] 00010
1 abort [call site] 00011
1 fuzzer_write_data [function] [call site] 00012
2 BZ2_bzWriteOpen [function] [call site] 00013
3 ferror [call site] 00014
3 BZ2_bzCompressInit [function] [call site] 00015
4 bz_config_ok [function] [call site] 00016
4 default_bzalloc [function] [call site] 00017
4 default_bzfree [function] [call site] 00018
4 prepare_new_block [function] [call site] 00020
2 BZ2_bzwrite [function] [call site] 00021
3 BZ2_bzWrite [function] [call site] 00022
4 ferror [call site] 00023
4 BZ2_bzCompress [function] [call site] 00024
5 handle_compress [function] [call site] 00025
6 copy_output_until_stop [function] [call site] 00026
6 isempty_RL [function] [call site] 00027
6 prepare_new_block [function] [call site] 00028
6 isempty_RL [function] [call site] 00029
6 copy_input_until_stop [function] [call site] 00030
7 add_pair_to_block [function] [call site] 00031
7 add_pair_to_block [function] [call site] 00032
6 flush_RL [function] [call site] 00033
7 add_pair_to_block [function] [call site] 00034
6 BZ2_compressBlock [function] [call site] 00036
7 fprintf [call site] 00037
7 BZ2_blockSort [function] [call site] 00038
8 fallbackSort [function] [call site] 00039
9 fprintf [call site] 00040
9 fprintf [call site] 00041
9 fallbackQSort3 [function] [call site] 00042
10 BZ2_bz__AssertH__fail [function] [call site] 00043
11 BZ2_bzlibVersion [function] [call site] 00044
11 fprintf [call site] 00045
11 fprintf [call site] 00046
10 fallbackSimpleSort [function] [call site] 00047
9 fprintf [call site] 00048
9 fprintf [call site] 00049
9 BZ2_bz__AssertH__fail [function] [call site] 00050
8 mainSort [function] [call site] 00051
9 fprintf [call site] 00052
9 fprintf [call site] 00053
9 fprintf [call site] 00054
9 mainQSort3 [function] [call site] 00055
10 BZ2_bz__AssertH__fail [function] [call site] 00056
10 mainSimpleSort [function] [call site] 00057
9 BZ2_bz__AssertH__fail [function] [call site] 00062
9 BZ2_bz__AssertH__fail [function] [call site] 00063
9 BZ2_bz__AssertH__fail [function] [call site] 00064
9 fprintf [call site] 00065
8 fprintf [call site] 00066
8 fprintf [call site] 00067
8 fallbackSort [function] [call site] 00068
8 BZ2_bz__AssertH__fail [function] [call site] 00069
7 BZ2_bsInitWrite [function] [call site] 00070
7 bsPutUChar [function] [call site] 00073
7 bsPutUChar [function] [call site] 00074
7 bsPutUChar [function] [call site] 00075
7 bsPutUChar [function] [call site] 00076
7 bsPutUChar [function] [call site] 00077
7 bsPutUChar [function] [call site] 00078
7 generateMTFValues [function] [call site] 00086
8 makeMaps_e [function] [call site] 00087
7 sendMTFValues [function] [call site] 00088
8 fprintf [call site] 00089
8 BZ2_bz__AssertH__fail [function] [call site] 00090
8 fprintf [call site] 00091
8 fprintf [call site] 00092
8 fprintf [call site] 00093
8 fprintf [call site] 00094
8 BZ2_hbMakeCodeLengths [function] [call site] 00095
9 BZ2_bz__AssertH__fail [function] [call site] 00096
9 BZ2_bz__AssertH__fail [function] [call site] 00097
8 BZ2_bz__AssertH__fail [function] [call site] 00098
8 BZ2_bz__AssertH__fail [function] [call site] 00099
8 BZ2_bz__AssertH__fail [function] [call site] 00100
8 BZ2_bz__AssertH__fail [function] [call site] 00101
8 BZ2_hbAssignCodes [function] [call site] 00102
8 fprintf [call site] 00105
8 fprintf [call site] 00110
8 fprintf [call site] 00115
8 BZ2_bz__AssertH__fail [function] [call site] 00116
8 BZ2_bz__AssertH__fail [function] [call site] 00128
8 fprintf [call site] 00129
7 bsPutUChar [function] [call site] 00130
7 bsPutUChar [function] [call site] 00131
7 bsPutUChar [function] [call site] 00132
7 bsPutUInt32 [function] [call site] 00133
7 fprintf [call site] 00134
7 bsFinishWrite [function] [call site] 00135
6 BZ2_compressBlock [function] [call site] 00136
5 handle_compress [function] [call site] 00137
5 isempty_RL [function] [call site] 00138
5 isempty_RL [function] [call site] 00139
4 fwrite [call site] 00140
4 ferror [call site] 00141
2 BZ2_bzWriteClose64 [function] [call site] 00142
3 ferror [call site] 00143
3 BZ2_bzCompress [function] [call site] 00144
3 fwrite [call site] 00145
3 ferror [call site] 00146
3 ferror [call site] 00147
3 fflush [call site] 00148
3 ferror [call site] 00149
3 BZ2_bzCompressEnd [function] [call site] 00150
1 fuzzer_read_data [function] [call site] 00151
2 BZ2_bzread [function] [call site] 00152
3 BZ2_bzRead [function] [call site] 00153
4 ferror [call site] 00154
4 myfeof [function] [call site] 00155
5 fgetc [call site] 00156
5 ungetc [call site] 00157
4 fread [call site] 00158
4 ferror [call site] 00159
4 BZ2_bzDecompress [function] [call site] 00160
5 unRLE_obuf_to_output_SMALL [function] [call site] 00161
6 BZ2_indexIntoF [function] [call site] 00162
6 BZ2_indexIntoF [function] [call site] 00163
6 BZ2_indexIntoF [function] [call site] 00164
6 BZ2_indexIntoF [function] [call site] 00165
6 BZ2_indexIntoF [function] [call site] 00166
6 BZ2_indexIntoF [function] [call site] 00167
6 BZ2_indexIntoF [function] [call site] 00168
6 BZ2_indexIntoF [function] [call site] 00169
6 BZ2_indexIntoF [function] [call site] 00170
6 BZ2_indexIntoF [function] [call site] 00171
5 unRLE_obuf_to_output_FAST [function] [call site] 00172
5 fprintf [call site] 00173
5 fprintf [call site] 00174
5 BZ2_decompress [function] [call site] 00175
6 fprintf [call site] 00176
6 makeMaps_d [function] [call site] 00177
6 BZ2_hbCreateDecodeTables [function] [call site] 00178
6 fprintf [call site] 00179
6 BZ2_indexIntoF [function] [call site] 00180
6 BZ2_indexIntoF [function] [call site] 00181
6 BZ2_bz__AssertH__fail [function] [call site] 00182
6 BZ2_bz__AssertH__fail [function] [call site] 00183
5 fprintf [call site] 00184
2 BZ2_bzReadGetUnused [function] [call site] 00186
2 BZ2_bzclose [function] [call site] 00187
3 BZ2_bzWriteClose [function] [call site] 00188
4 BZ2_bzWriteClose64 [function] [call site] 00189
3 BZ2_bzWriteClose [function] [call site] 00190
3 BZ2_bzReadClose [function] [call site] 00191
4 BZ2_bzDecompressEnd [function] [call site] 00192
3 fclose [call site] 00193
1 BZ2_bzlibVersion [function] [call site] 00194
1 BZ2_bzflush [function] [call site] 00195
1 fclose [call site] 00196
1 unlink [call site] 00197
1 perror [call site] 00198