Fuzz introspector: convert_woff2ttf_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
0 0 None 8 885 woff2::ConvertWOFF2ToTTF(unsignedcharconst*,unsignedlong,woff2::WOFF2Out*) call site: 00000 /src/woff2/src/woff2_dec.cc:1364
0 0 None 3 1393 BrotliDecoderDecompressStream call site: 00128 /src/woff2/brotli/c/dec/decode.c:2087
0 0 None 0 2 BrotliDecoderDecompressStream call site: 00128 /src/woff2/brotli/c/dec/decode.c:2019
0 0 None 0 0 BrotliEnsureRingBuffer call site: 00082 /src/woff2/brotli/c/dec/decode.c:1315
0 0 None 0 0 woff2::Buffer::Read(unsignedchar*,unsignedlong) call site: 00000 /src/woff2/./src/./buffer.h:70
0 0 None 0 0 unsignedlongwoff2::Round4 (unsignedlong) call site: 00000 /src/woff2/./src/./round.h:19
0 0 None 0 0 unsignedintwoff2::Round4 (unsignedint) call site: 00000 /src/woff2/./src/./round.h:19
0 0 None 0 0 woff2::WOFF2StringOut::Write(voidconst*,unsignedlong,unsignedlong) call site: 00000 /src/woff2/src/woff2_out.cc:21
0 0 2 :

['std::__1::basic_string , std::__1::allocator >::append(unsigned long, char)', 'std::__1::basic_string , std::__1::allocator >::size() const']

0 0 woff2::WOFF2StringOut::Write(voidconst*,unsignedlong,unsignedlong) call site: 00000 /src/woff2/src/woff2_out.cc:27

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 woff2::WOFF2StringOut::WOFF2StringOut(std::__1::basic_string , std::__1::allocator >*) [function] [call site] 00001
2 woff2::WOFF2Out::WOFF2Out() [function] [call site] 00002
1 woff2::WOFF2StringOut::SetMaxSize(unsigned long) [function] [call site] 00003
1 woff2::ConvertWOFF2ToTTF(unsigned char const*, unsigned long, woff2::WOFF2Out*) [function] [call site] 00004
2 woff2::(anonymous namespace)::RebuildMetadata::RebuildMetadata() [function] [call site] 00005
2 woff2::(anonymous namespace)::WOFF2Header::WOFF2Header() [function] [call site] 00006
2 woff2::(anonymous namespace)::ReadWOFF2Header(unsigned char const*, unsigned long, woff2::(anonymous namespace)::WOFF2Header*) [function] [call site] 00007
3 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00008
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00009
4 ntohl [call site] 00010
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00011
3 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00012
4 ntohs [call site] 00013
3 woff2::Buffer::Skip(unsigned long) [function] [call site] 00014
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00015
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00016
3 woff2::Buffer::Skip(unsigned long) [function] [call site] 00017
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00018
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00019
3 woff2::(anonymous namespace)::ReadTableDirectory(woff2::Buffer*, std::__1::vector >*, unsigned long) [function] [call site] 00020
4 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00021
4 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00022
4 woff2::ReadBase128(woff2::Buffer*, unsigned int*) [function] [call site] 00023
5 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00024
4 woff2::ReadBase128(woff2::Buffer*, unsigned int*) [function] [call site] 00025
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00026
3 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00027
4 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00028
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00029
4 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00030
4 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00031
3 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00032
3 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00033
3 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00034
3 woff2::(anonymous namespace)::ComputeOffsetToFirstTable(woff2::(anonymous namespace)::WOFF2Header const&) [function] [call site] 00035
4 woff2::CollectionHeaderSize(unsigned int, unsigned int) [function] [call site] 00036
3 woff2::Buffer::offset() const [function] [call site] 00037
3 unsigned long woff2::Round4 (unsigned long) [function] [call site] 00038
3 unsigned int woff2::Round4 (unsigned int) [function] [call site] 00039
3 unsigned int woff2::Round4 (unsigned int) [function] [call site] 00040
3 unsigned long woff2::Round4 (unsigned long) [function] [call site] 00041
2 woff2::(anonymous namespace)::WriteHeaders(unsigned char const*, unsigned long, woff2::(anonymous namespace)::RebuildMetadata*, woff2::(anonymous namespace)::WOFF2Header*, woff2::WOFF2Out*) [function] [call site] 00042
3 woff2::(anonymous namespace)::ComputeOffsetToFirstTable(woff2::(anonymous namespace)::WOFF2Header const&) [function] [call site] 00043
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00044
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00045
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00046
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00047
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00048
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00049
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00050
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00051
3 woff2::(anonymous namespace)::StoreOffsetTable(unsigned char*, unsigned long, unsigned int, unsigned short) [function] [call site] 00052
4 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00053
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00054
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00055
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00056
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00057
3 woff2::(anonymous namespace)::StoreTableEntry(unsigned char*, unsigned int, unsigned int) [function] [call site] 00058
4 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00059
4 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00060
4 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00061
4 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00062
3 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00063
3 woff2::(anonymous namespace)::StoreOffsetTable(unsigned char*, unsigned long, unsigned int, unsigned short) [function] [call site] 00064
3 woff2::(anonymous namespace)::StoreTableEntry(unsigned char*, unsigned int, unsigned int) [function] [call site] 00065
3 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00066
2 woff2::(anonymous namespace)::Woff2Uncompress(unsigned char*, unsigned long, unsigned char const*, unsigned long) [function] [call site] 00067
3 BrotliDecoderDecompress [function] [call site] 00068
4 BrotliDecoderStateInit [function] [call site] 00069
5 BrotliInitBitReader [function] [call site] 00070
5 BrotliGetDictionary [function] [call site] 00071
5 BrotliGetTransforms [function] [call site] 00072
4 BrotliDecoderDecompressStream [function] [call site] 00073
5 WriteRingBuffer [function] [call site] 00074
6 UnwrittenBytes [function] [call site] 00075
5 BrotliWarmupBitReader [function] [call site] 00076
5 DecodeWindowBits [function] [call site] 00077
5 BrotliDecoderStateMetablockBegin [function] [call site] 00078
5 DecodeMetaBlockLength [function] [call site] 00079
5 BrotliCalculateRingBufferSize [function] [call site] 00080
5 CopyUncompressedBlockToOutput [function] [call site] 00081
6 BrotliEnsureRingBuffer [function] [call site] 00082
6 WriteRingBuffer [function] [call site] 00083
5 DecodeVarLenUint8 [function] [call site] 00084
5 ReadHuffmanCode [function] [call site] 00085
6 ReadSimpleHuffmanSymbols [function] [call site] 00086
6 BrotliBuildSimpleHuffmanTable [function] [call site] 00087
6 ReadCodeLengthCodeLengths [function] [call site] 00088
6 BrotliBuildCodeLengthsHuffmanTable [function] [call site] 00089
6 ReadSymbolCodeLengths [function] [call site] 00090
7 BrotliWarmupBitReader [function] [call site] 00091
6 SafeReadSymbolCodeLengths [function] [call site] 00092
6 BrotliBuildHuffmanTable [function] [call site] 00093
5 ReadHuffmanCode [function] [call site] 00094
5 SafeDecodeSymbol [function] [call site] 00095
5 ReadContextModes [function] [call site] 00096
5 DecodeContextMap [function] [call site] 00097
6 DecodeVarLenUint8 [function] [call site] 00098
6 ReadHuffmanCode [function] [call site] 00099
6 SafeDecodeSymbol [function] [call site] 00100
6 InverseMoveToFrontTransform [function] [call site] 00101
5 BrotliMaxDistanceSymbol [function] [call site] 00102
5 DecodeContextMap [function] [call site] 00103
5 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00104
5 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00105
5 BrotliDecoderHuffmanTreeGroupInit [function] [call site] 00106
5 HuffmanTreeGroupDecode [function] [call site] 00107
6 ReadHuffmanCode [function] [call site] 00108
5 BrotliEnsureRingBuffer [function] [call site] 00109
5 ProcessCommands [function] [call site] 00110
6 BrotliWarmupBitReader [function] [call site] 00111
6 DecodeCommandBlockSwitch [function] [call site] 00112
6 BrotliTransformDictionaryWord [function] [call site] 00113
7 ToUpperCase [function] [call site] 00114
7 ToUpperCase [function] [call site] 00115
5 SafeProcessCommands [function] [call site] 00116
6 SafeDecodeCommandBlockSwitch [function] [call site] 00117
7 SafeDecodeSymbol [function] [call site] 00118
6 SafeDecodeSymbol [function] [call site] 00119
6 SafeDecodeSymbol [function] [call site] 00120
6 SafeDecodeSymbol [function] [call site] 00121
6 SafeDecodeSymbol [function] [call site] 00122
6 BrotliTransformDictionaryWord [function] [call site] 00123
5 WriteRingBuffer [function] [call site] 00124
5 WrapRingBuffer [function] [call site] 00125
5 BrotliDecoderStateCleanupAfterMetablock [function] [call site] 00126
5 WriteRingBuffer [function] [call site] 00127
5 SaveErrorCode [function] [call site] 00128
4 BrotliDecoderStateCleanup [function] [call site] 00129
5 BrotliDecoderStateCleanupAfterMetablock [function] [call site] 00130
2 woff2::(anonymous namespace)::ReconstructFont(unsigned char*, unsigned int, woff2::(anonymous namespace)::RebuildMetadata*, woff2::(anonymous namespace)::WOFF2Header*, unsigned long, woff2::WOFF2Out*) [function] [call site] 00131
3 woff2::(anonymous namespace)::Tables(woff2::(anonymous namespace)::WOFF2Header*, unsigned long) [function] [call site] 00132
3 woff2::(anonymous namespace)::FindTable(std::__1::vector >*, unsigned int) [function] [call site] 00133
3 woff2::(anonymous namespace)::FindTable(std::__1::vector >*, unsigned int) [function] [call site] 00134
3 woff2::(anonymous namespace)::ReadNumHMetrics(unsigned char const*, unsigned long, unsigned short*) [function] [call site] 00135
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00136
4 woff2::Buffer::Skip(unsigned long) [function] [call site] 00137
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00138
3 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00139
3 woff2::(anonymous namespace)::FindTable(std::__1::vector >*, unsigned int) [function] [call site] 00140
3 woff2::(anonymous namespace)::ReconstructGlyf(unsigned char const*, woff2::Table*, unsigned int*, woff2::Table*, unsigned int*, woff2::(anonymous namespace)::WOFF2FontInfo*, woff2::WOFF2Out*) [function] [call site] 00141
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00142
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00143
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00144
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00145
4 woff2::Buffer::ReadU32(unsigned int*) [function] [call site] 00146
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00147
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00148
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00149
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00150
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00151
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00152
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00153
4 woff2::Buffer::buffer() const [function] [call site] 00154
4 woff2::Buffer::Skip(unsigned long) [function] [call site] 00155
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00156
4 woff2::(anonymous namespace)::SizeOfComposite(woff2::Buffer, unsigned long*, bool*) [function] [call site] 00157
5 woff2::Buffer::offset() const [function] [call site] 00158
5 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00159
5 woff2::Buffer::Skip(unsigned long) [function] [call site] 00160
5 woff2::Buffer::offset() const [function] [call site] 00161
4 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00162
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00163
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00164
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00165
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00166
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00167
4 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00168
4 woff2::Buffer::length() const [function] [call site] 00169
4 woff2::Buffer::buffer() const [function] [call site] 00170
4 woff2::Buffer::buffer() const [function] [call site] 00171
4 woff2::Buffer::offset() const [function] [call site] 00172
4 woff2::Buffer::length() const [function] [call site] 00173
4 woff2::(anonymous namespace)::TripletDecode(unsigned char const*, unsigned char const*, unsigned long, unsigned int, woff2::Point*, unsigned long*) [function] [call site] 00174
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00175
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00176
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00177
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00178
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00179
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00180
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00181
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00182
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00183
5 woff2::(anonymous namespace)::WithSign(int, int) [function] [call site] 00184
5 woff2::(anonymous namespace)::_SafeIntAddition(int, int, int*) [function] [call site] 00185
5 woff2::(anonymous namespace)::_SafeIntAddition(int, int, int*) [function] [call site] 00186
4 woff2::Buffer::Skip(unsigned long) [function] [call site] 00187
4 woff2::Buffer::Skip(unsigned long) [function] [call site] 00188
4 woff2::Read255UShort(woff2::Buffer*, unsigned int*) [function] [call site] 00189
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00190
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00191
4 woff2::(anonymous namespace)::ComputeBbox(unsigned int, woff2::Point const*, unsigned char*) [function] [call site] 00192
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00193
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00194
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00195
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00196
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00197
4 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00198
4 woff2::Buffer::Read(unsigned char*, unsigned long) [function] [call site] 00199
4 woff2::(anonymous namespace)::StorePoints(unsigned int, woff2::Point const*, unsigned int, unsigned int, bool, unsigned char*, unsigned long, unsigned long*) [function] [call site] 00200
5 abs [call site] 00201
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00202
5 abs [call site] 00203
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00204
4 woff2::(anonymous namespace)::Pad4(woff2::WOFF2Out*) [function] [call site] 00205
5 unsigned long woff2::Round4 (unsigned long) [function] [call site] 00206
4 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00207
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00208
4 woff2::Buffer::ReadS16(short*) [function] [call site] 00209
5 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00210
4 woff2::(anonymous namespace)::StoreLoca(std::__1::vector > const&, int, unsigned int*, woff2::WOFF2Out*) [function] [call site] 00211
5 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00212
5 woff2::Store16(unsigned char*, unsigned long, int) [function] [call site] 00213
5 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00214
3 woff2::(anonymous namespace)::ReconstructTransformedHmtx(unsigned char const*, unsigned long, unsigned short, unsigned short, std::__1::vector > const&, unsigned int*, woff2::WOFF2Out*) [function] [call site] 00215
4 woff2::Buffer::Buffer(unsigned char const*, unsigned long) [function] [call site] 00216
4 woff2::Buffer::ReadU8(unsigned char*) [function] [call site] 00217
4 __assert_fail [call site] 00218
4 woff2::Buffer::ReadU16(unsigned short*) [function] [call site] 00219
4 woff2::Buffer::ReadS16(short*) [function] [call site] 00220
4 woff2::Buffer::ReadS16(short*) [function] [call site] 00221
4 woff2::Store16(int, unsigned long*, unsigned char*) [function] [call site] 00222
4 woff2::Store16(int, unsigned long*, unsigned char*) [function] [call site] 00223
4 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00224
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00225
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00226
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00227
3 woff2::ComputeULongSum(unsigned char const*, unsigned long) [function] [call site] 00228
3 woff2::(anonymous namespace)::Pad4(woff2::WOFF2Out*) [function] [call site] 00229
3 woff2::(anonymous namespace)::FindTable(std::__1::vector >*, unsigned int) [function] [call site] 00230
3 woff2::StoreU32(unsigned char*, unsigned long, unsigned int) [function] [call site] 00231
2 woff2::(anonymous namespace)::WOFF2Header::~WOFF2Header() [function] [call site] 00232