Fuzz introspector: mux_demux_api_fuzzer
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
2 2 1 :

['VP8LSetEndOfStream']

2 2 VP8LReadBits call site: 00055 /src/libwebp/src/utils/bit_reader_utils.c:212
0 23 1 :

['MuxImageCount']

0 23 SearchImageToGetOrDelete call site: 00182 /src/libwebp/src/mux/muxinternal.c:284
0 0 None 0 503 ParseVP8XChunks call site: 00000 /src/libwebp/src/demux/demux.c:518
0 0 None 0 18 MuxImageParse call site: 00079 /src/libwebp/src/mux/muxread.c:119
0 0 None 0 18 MuxImageParse call site: 00087 /src/libwebp/src/mux/muxread.c:155
0 0 None 0 17 MuxImageCount call site: 00120 /src/libwebp/src/mux/muxinternal.c:262
0 0 None 0 3 ParseSingleImage call site: 00000 /src/libwebp/src/demux/demux.c:435
0 0 None 0 3 ParseAnimationFrame call site: 00000 /src/libwebp/src/demux/demux.c:347
0 0 None 0 0 VP8LGetInfo call site: 00053 /src/libwebp/src/dec/vp8l_dec.c:147
0 0 None 0 0 WebPGetFeaturesInternal call site: 00246 /src/libwebp/src/dec/webp_dec.c:746
0 0 None 0 0 ParseHeadersInternal call site: 00259 /src/libwebp/src/dec/webp_dec.c:331
0 0 None 0 0 ParseHeadersInternal call site: 00259 /src/libwebp/src/dec/webp_dec.c:337

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 WebPDataInit [function] [call site] 00001
1 WebPMuxCreate [function] [call site] 00002
2 WebPMuxCreateInternal [function] [call site] 00003
3 ChunkInit [function] [call site] 00004
4 __assert_fail [call site] 00005
3 WebPMuxNew [function] [call site] 00009
4 WebPNewInternal [function] [call site] 00010
5 WebPSafeMalloc [function] [call site] 00011
6 CheckSizeArgumentsOverflow [function] [call site] 00012
7 CheckSizeOverflow [function] [call site] 00013
6 __assert_fail [call site] 00014
5 MuxInit [function] [call site] 00015
6 __assert_fail [call site] 00016
3 SizeWithPadding [function] [call site] 00019
4 __assert_fail [call site] 00020
3 WebPSafeMalloc [function] [call site] 00021
3 MuxImageInit [function] [call site] 00022
4 __assert_fail [call site] 00023
3 ChunkVerifyAndAssign [function] [call site] 00024
4 SizeWithPadding [function] [call site] 00026
4 ChunkAssignData [function] [call site] 00028
5 ChunkRelease [function] [call site] 00029
6 WebPDataClear [function] [call site] 00030
7 WebPFree [function] [call site] 00031
8 WebPSafeFree [function] [call site] 00032
7 WebPDataInit [function] [call site] 00033
6 ChunkInit [function] [call site] 00034
5 WebPDataCopy [function] [call site] 00035
6 WebPDataInit [function] [call site] 00036
6 WebPMalloc [function] [call site] 00037
7 WebPSafeMalloc [function] [call site] 00038
3 ChunkDiskSize [function] [call site] 00039
4 SizeWithPadding [function] [call site] 00040
3 ChunkGetIdFromTag [function] [call site] 00041
3 ChunkSetHead [function] [call site] 00042
4 __assert_fail [call site] 00043
4 WebPSafeMalloc [function] [call site] 00044
3 ChunkSetHead [function] [call site] 00045
3 MuxImageFinalize [function] [call site] 00046
4 VP8LGetInfo [function] [call site] 00047
5 VP8LCheckSignature [function] [call site] 00048
5 VP8LInitBitReader [function] [call site] 00049
6 __assert_fail [call site] 00050
6 __assert_fail [call site] 00051
6 __assert_fail [call site] 00052
5 ReadImageInfo [function] [call site] 00053
6 VP8LReadBits [function] [call site] 00054
7 __assert_fail [call site] 00055
7 VP8LPrefetchBits [function] [call site] 00056
7 ShiftBytes [function] [call site] 00057
8 VP8LIsEndOfStream [function] [call site] 00058
9 __assert_fail [call site] 00059
8 VP8LSetEndOfStream [function] [call site] 00060
7 VP8LSetEndOfStream [function] [call site] 00061
6 VP8LReadBits [function] [call site] 00062
6 VP8LReadBits [function] [call site] 00063
6 VP8LReadBits [function] [call site] 00064
6 VP8LReadBits [function] [call site] 00065
4 VP8GetInfo [function] [call site] 00066
5 VP8CheckSignature [function] [call site] 00067
4 __assert_fail [call site] 00068
4 ChunkDelete [function] [call site] 00069
5 ChunkRelease [function] [call site] 00070
5 WebPSafeFree [function] [call site] 00071
3 MuxImagePush [function] [call site] 00072
4 WebPSafeMalloc [function] [call site] 00073
3 MuxImageInit [function] [call site] 00074
3 MuxImageParse [function] [call site] 00075
4 ChunkInit [function] [call site] 00076
4 __assert_fail [call site] 00077
4 __assert_fail [call site] 00078
4 ChunkAssignData [function] [call site] 00079
4 ChunkDiskSize [function] [call site] 00080
4 ChunkInit [function] [call site] 00081
4 ChunkVerifyAndAssign [function] [call site] 00082
4 ChunkGetIdFromTag [function] [call site] 00083
4 ChunkSetHead [function] [call site] 00084
4 ChunkSetHead [function] [call site] 00085
4 MuxImageFinalize [function] [call site] 00086
4 ChunkAppend [function] [call site] 00087
5 __assert_fail [call site] 00088
5 ChunkSetHead [function] [call site] 00089
5 ChunkSetHead [function] [call site] 00090
4 ChunkDiskSize [function] [call site] 00091
4 ChunkRelease [function] [call site] 00092
3 ChunkRelease [function] [call site] 00093
3 MuxGetChunkListFromId [function] [call site] 00094
4 __assert_fail [call site] 00095
3 ChunkAppend [function] [call site] 00096
3 ChunkInit [function] [call site] 00100
3 MuxValidate [function] [call site] 00101
4 WebPMuxGetFeatures [function] [call site] 00102
5 MuxGetCanvasInfo [function] [call site] 00103
6 __assert_fail [call site] 00104
6 MuxGet [function] [call site] 00105
7 __assert_fail [call site] 00106
7 __assert_fail [call site] 00108
7 WebPDataInit [function] [call site] 00109
7 ChunkSearchList [function] [call site] 00110
8 ChunkSearchNextInList [function] [call site] 00111
7 ChunkSearchList [function] [call site] 00112
7 ChunkSearchList [function] [call site] 00113
7 ChunkSearchList [function] [call site] 00114
7 ChunkSearchList [function] [call site] 00115
6 ValidateForSingleImage [function] [call site] 00119
7 MuxImageCount [function] [call site] 00120
8 GetChunkListFromId [function] [call site] 00121
9 __assert_fail [call site] 00122
8 ChunkGetIdFromTag [function] [call site] 00123
7 MuxImageCount [function] [call site] 00124
6 __assert_fail [call site] 00125
4 ValidateChunk [function] [call site] 00126
5 WebPMuxNumChunks [function] [call site] 00127
6 MuxImageCount [function] [call site] 00129
6 MuxGetChunkListFromId [function] [call site] 00130
6 ChunkGetIndexFromId [function] [call site] 00131
6 CountChunks [function] [call site] 00132
5 IsNotCompatible [function] [call site] 00133
4 ValidateChunk [function] [call site] 00134
4 ValidateChunk [function] [call site] 00135
4 ValidateChunk [function] [call site] 00136
4 ValidateChunk [function] [call site] 00137
4 ValidateChunk [function] [call site] 00138
4 ValidateChunk [function] [call site] 00139
4 MuxHasAlpha [function] [call site] 00140
4 WebPMuxNumChunks [function] [call site] 00141
3 MuxImageDelete [function] [call site] 00142
4 MuxImageRelease [function] [call site] 00143
5 ChunkListDelete [function] [call site] 00144
6 ChunkDelete [function] [call site] 00145
5 ChunkListDelete [function] [call site] 00146
5 ChunkListDelete [function] [call site] 00147
5 MuxImageInit [function] [call site] 00148
4 WebPSafeFree [function] [call site] 00149
3 ChunkRelease [function] [call site] 00150
3 MuxImageDelete [function] [call site] 00151
3 WebPMuxDelete [function] [call site] 00152
4 MuxRelease [function] [call site] 00153
5 __assert_fail [call site] 00154
5 DeleteAllImages [function] [call site] 00155
5 ChunkListDelete [function] [call site] 00156
5 ChunkListDelete [function] [call site] 00157
5 ChunkListDelete [function] [call site] 00158
5 ChunkListDelete [function] [call site] 00159
5 ChunkListDelete [function] [call site] 00160
5 ChunkListDelete [function] [call site] 00161
4 WebPSafeFree [function] [call site] 00162
1 WebPMuxGetChunk [function] [call site] 00163
2 ChunkGetIndexFromFourCC [function] [call site] 00164
3 ChunkGetTagFromFourCC [function] [call site] 00165
3 ChunkGetIndexFromTag [function] [call site] 00166
2 ChunkGetTagFromFourCC [function] [call site] 00169
1 WebPMuxGetChunk [function] [call site] 00170
1 WebPMuxGetChunk [function] [call site] 00171
1 WebPMuxGetFeatures [function] [call site] 00172
1 WebPMuxGetAnimationParams [function] [call site] 00173
1 WebPMuxGetFrame [function] [call site] 00177
2 MuxImageGetNth [function] [call site] 00178
3 __assert_fail [call site] 00179
3 __assert_fail [call site] 00180
3 SearchImageToGetOrDelete [function] [call site] 00181
4 __assert_fail [call site] 00182
2 MuxGetImageInternal [function] [call site] 00183
3 ChunkGetIdFromTag [function] [call site] 00184
3 SynthesizeBitstream [function] [call site] 00185
4 ChunkDiskSize [function] [call site] 00186
4 ChunkDiskSize [function] [call site] 00187
4 WebPSafeMalloc [function] [call site] 00188
4 __assert_fail [call site] 00189
4 __assert_fail [call site] 00190
4 MuxEmitRiffHeader [function] [call site] 00191
5 PutLE32 [function] [call site] 00192
6 PutLE16 [function] [call site] 00193
7 __assert_fail [call site] 00194
5 __assert_fail [call site] 00197
4 EmitVP8XChunk [function] [call site] 00199
5 __assert_fail [call site] 00200
5 __assert_fail [call site] 00201
5 __assert_fail [call site] 00202
5 PutLE24 [function] [call site] 00206
6 __assert_fail [call site] 00207
4 ChunkListEmit [function] [call site] 00210
5 ChunkEmit [function] [call site] 00211
6 __assert_fail [call site] 00212
6 __assert_fail [call site] 00213
6 __assert_fail [call site] 00216
6 ChunkDiskSize [function] [call site] 00217
4 ChunkListEmit [function] [call site] 00218
4 __assert_fail [call site] 00219
2 MuxGetFrameInternal [function] [call site] 00220
3 __assert_fail [call site] 00221
3 ChunkGetIdFromTag [function] [call site] 00225
3 SynthesizeBitstream [function] [call site] 00226
1 WebPDataClear [function] [call site] 00227
2 WebPDataInit [function] [call site] 00228
1 WebPMuxDelete [function] [call site] 00229
1 WebPDemuxPartial [function] [call site] 00230
2 WebPDemuxInternal [function] [call site] 00231
3 InitMemBuffer [function] [call site] 00232
4 RemapMemBuffer [function] [call site] 00233
3 ReadHeader [function] [call site] 00234
4 MemDataSize [function] [call site] 00235
4 GetBuffer [function] [call site] 00236
4 memcmp [call site] 00237
4 GetBuffer [function] [call site] 00238
4 memcmp [call site] 00239
4 GetBuffer [function] [call site] 00240
3 CreateRawImageDemuxer [function] [call site] 00244
4 WebPGetFeatures [function] [call site] 00245
5 WebPGetFeaturesInternal [function] [call site] 00246
6 GetFeatures [function] [call site] 00247
7 DefaultFeatures [function] [call site] 00248
8 __assert_fail [call site] 00249
7 ParseHeadersInternal [function] [call site] 00250
8 ParseRIFF [function] [call site] 00251
9 __assert_fail [call site] 00252
9 __assert_fail [call site] 00253
9 __assert_fail [call site] 00254
9 memcmp [call site] 00255
9 memcmp [call site] 00256
8 ParseVP8X [function] [call site] 00259
9 __assert_fail [call site] 00260
9 __assert_fail [call site] 00261
9 __assert_fail [call site] 00262
8 memcmp [call site] 00268
8 ParseOptionalChunks [function] [call site] 00269
9 __assert_fail [call site] 00270
9 __assert_fail [call site] 00271
9 __assert_fail [call site] 00272
9 __assert_fail [call site] 00273
9 memcmp [call site] 00275
9 memcmp [call site] 00276
9 memcmp [call site] 00277
8 ParseVP8Header [function] [call site] 00278
9 memcmp [call site] 00279
9 memcmp [call site] 00280
9 __assert_fail [call site] 00281
9 __assert_fail [call site] 00282
9 __assert_fail [call site] 00283
9 __assert_fail [call site] 00284
9 VP8LCheckSignature [function] [call site] 00286
8 VP8GetInfo [function] [call site] 00287
8 VP8LGetInfo [function] [call site] 00288
8 __assert_fail [call site] 00289
8 __assert_fail [call site] 00290
4 WebPSafeCalloc [function] [call site] 00291
5 CheckSizeArgumentsOverflow [function] [call site] 00292
5 __assert_fail [call site] 00293
5 calloc [call site] 00294
4 WebPSafeCalloc [function] [call site] 00295
4 InitDemux [function] [call site] 00296
4 SetFrameInfo [function] [call site] 00297
4 IsValidSimpleFormat [function] [call site] 00299
4 __assert_fail [call site] 00300
4 WebPSafeFree [function] [call site] 00301
4 WebPSafeFree [function] [call site] 00302
3 WebPSafeCalloc [function] [call site] 00303
3 InitDemux [function] [call site] 00304
3 GetBuffer [function] [call site] 00305
3 memcmp [call site] 00306
3 WebPDemuxDelete [function] [call site] 00307
4 WebPSafeFree [function] [call site] 00308
4 WebPSafeFree [function] [call site] 00309
4 WebPSafeFree [function] [call site] 00310
1 WebPDemuxDelete [function] [call site] 00311
1 WebPDemux [function] [call site] 00312
2 WebPDemuxInternal [function] [call site] 00313
1 WebPDemuxGetChunk [function] [call site] 00314
2 SetChunk [function] [call site] 00315
3 ChunkCount [function] [call site] 00316
4 memcmp [call site] 00317
3 GetChunk [function] [call site] 00318
4 memcmp [call site] 00319
1 WebPDemuxNextChunk [function] [call site] 00320
1 WebPDemuxReleaseChunkIterator [function] [call site] 00322
1 WebPDemuxGetChunk [function] [call site] 00323
1 WebPDemuxPrevChunk [function] [call site] 00324
1 WebPDemuxReleaseChunkIterator [function] [call site] 00326
1 WebPDemuxGetFrame [function] [call site] 00327
2 SetFrame [function] [call site] 00328
3 SynthesizeFrame [function] [call site] 00330
4 GetFramePayload [function] [call site] 00331
4 __assert_fail [call site] 00332
1 WebPDemuxNextFrame [function] [call site] 00333
1 WebPDemuxReleaseIterator [function] [call site] 00335
1 WebPDemuxDelete [function] [call site] 00336