Fuzz introspector: decode_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
9 9 1 :

['Shift']

9 9 BrotliTransformDictionaryWord call site: 00051 /src/brotli/c/common/transform.c:271
0 0 None 9 9 BrotliTransformDictionaryWord call site: 00050 /src/brotli/c/common/transform.c:267
0 0 None 6 1401 BrotliDecoderDecompressStream call site: 00065 /src/brotli/c/dec/decode.c:2412
0 0 None 6 1401 BrotliDecoderDecompressStream call site: 00065 /src/brotli/c/dec/decode.c:2628
0 0 None 6 1401 BrotliDecoderDecompressStream call site: 00065 /src/brotli/c/dec/decode.c:2720
0 0 None 0 0 SkipMetadataBlock call site: 00030 /src/brotli/c/dec/decode.c:1382
0 0 None 0 0 BrotliEnsureRingBuffer call site: 00028 /src/brotli/c/dec/decode.c:1343

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 BrotliDecoderCreateInstance [function] [call site] 00001
2 BrotliDecoderStateInit [function] [call site] 00002
3 BrotliInitBitReader [function] [call site] 00003
3 BrotliSharedDictionaryCreateInstance [function] [call site] 00004
4 BrotliGetDictionary [function] [call site] 00005
4 BrotliGetTransforms [function] [call site] 00006
1 BrotliDecoderDecompressStream [function] [call site] 00007
2 WriteRingBuffer [function] [call site] 00008
3 UnwrittenBytes [function] [call site] 00009
2 BrotliWarmupBitReader [function] [call site] 00010
2 DecodeWindowBits [function] [call site] 00011
2 BrotliDecoderStateMetablockBegin [function] [call site] 00012
2 DecodeMetaBlockLength [function] [call site] 00013
2 BrotliCalculateRingBufferSize [function] [call site] 00014
2 DecodeVarLenUint8 [function] [call site] 00015
2 ReadHuffmanCode [function] [call site] 00016
3 ReadSimpleHuffmanSymbols [function] [call site] 00017
3 BrotliBuildSimpleHuffmanTable [function] [call site] 00018
3 ReadCodeLengthCodeLengths [function] [call site] 00019
3 BrotliBuildCodeLengthsHuffmanTable [function] [call site] 00020
3 ReadSymbolCodeLengths [function] [call site] 00021
4 BrotliWarmupBitReader [function] [call site] 00022
3 SafeReadSymbolCodeLengths [function] [call site] 00023
3 BrotliBuildHuffmanTable [function] [call site] 00024
2 ReadHuffmanCode [function] [call site] 00025
2 SafeDecodeSymbol [function] [call site] 00026
2 CopyUncompressedBlockToOutput [function] [call site] 00027
3 BrotliEnsureRingBuffer [function] [call site] 00028
3 WriteRingBuffer [function] [call site] 00029
2 SkipMetadataBlock [function] [call site] 00030
2 ReadContextModes [function] [call site] 00031
2 DecodeContextMap [function] [call site] 00032
3 DecodeVarLenUint8 [function] [call site] 00033
3 ReadHuffmanCode [function] [call site] 00034
3 SafeDecodeSymbol [function] [call site] 00035
3 InverseMoveToFrontTransform [function] [call site] 00036
2 DecodeContextMap [function] [call site] 00037
2 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00038
2 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00039
2 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00040
2 HuffmanTreeGroupDecode [function] [call site] 00041
3 ReadHuffmanCode [function] [call site] 00042
2 BrotliEnsureRingBuffer [function] [call site] 00043
2 CalculateDistanceLut [function] [call site] 00044
2 ProcessCommands [function] [call site] 00045
3 GetCompoundDictionarySize [function] [call site] 00046
3 BrotliWarmupBitReader [function] [call site] 00047
3 BrotliTransformDictionaryWord [function] [call site] 00048
2 SafeProcessCommands [function] [call site] 00053
3 GetCompoundDictionarySize [function] [call site] 00054
3 SafeDecodeSymbol [function] [call site] 00055
3 SafeDecodeSymbol [function] [call site] 00056
3 SafeDecodeSymbol [function] [call site] 00057
3 SafeDecodeSymbol [function] [call site] 00058
3 BrotliTransformDictionaryWord [function] [call site] 00059
2 WriteRingBuffer [function] [call site] 00060
2 WrapRingBuffer [function] [call site] 00061
2 CopyFromCompoundDictionary [function] [call site] 00062
2 BrotliDecoderStateCleanupAfterMetablock [function] [call site] 00063
2 WriteRingBuffer [function] [call site] 00064
2 SaveErrorCode [function] [call site] 00065
1 BrotliDecoderDestroyInstance [function] [call site] 00066
2 BrotliDecoderStateCleanup [function] [call site] 00067
3 BrotliDecoderStateCleanupAfterMetablock [function] [call site] 00068
3 BrotliSharedDictionaryDestroyInstance [function] [call site] 00069