Fuzz introspector: fuzz_json
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
407 1 LLVMFuzzerTestOneInput call site: 00001 json2pb::JsonToProtoMessageInline

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 json2pb::JsonToProtoMessage [function] [call site] 00001
2 json2pb::JsonToProtoMessageInline [function] [call site] 00002
3 GenericDocument::Parse [function] [call site] 00004
4 RAPIDJSON_ASSERT [function] [call site] 00005
4 GenericDocument::ParseStream [function] [call site] 00006
5 brpc::AMFField::SetNull [function] [call site] 00007
6 brpc::AMFField::Clear [function] [call site] 00008
7 brpc::AMFField::SlowerClear [function] [call site] 00009
8 brpc::AMFField::type [function] [call site] 00010
5 GetAllocator [function] [call site] 00012
5 GenericReader::template [call site] 00013
5 RAPIDJSON_ASSERT [function] [call site] 00014
5 RawAssign [function] [call site] 00017
5 template [call site] 00018
3 GenericDocument::GetErrorOffset [function] [call site] 00020
3 GenericDocument::HasParseError [function] [call site] 00023
3 GenericDocument::GetParseError [function] [call site] 00025
3 J2PERROR_WITH_PB [function] [call site] 00027
3 BUTIL_RAPIDJSON_NAMESPACE::GetParseError_En [function] [call site] 00028
3 GenericDocument::GetParseError [function] [call site] 00029
3 json2pb::JsonValueToProtoMessage [function] [call site] 00030
4 EvilService::GetDescriptor [function] [call site] 00031
4 J2PERROR_WITH_PB [function] [call site] 00034
4 google::protobuf::Message*::GetReflection [function] [call site] 00035
4 std::vector::reserve [function] [call site] 00036
4 google::protobuf::Descriptor*::extension_range_count [function] [call site] 00037
4 google::protobuf::Descriptor*::extension_range [function] [call site] 00038
4 google::protobuf::Descriptor::ExtensionRange*::start_number [function] [call site] 00039
4 google::protobuf::Descriptor::ExtensionRange*::end_number [function] [call site] 00040
4 google::protobuf::Reflection*::FindKnownExtensionByNumber [function] [call site] 00041
4 std::vector::push_back [function] [call site] 00042
4 mcpack2pb::ObjectIterator::field_count [function] [call site] 00043
4 std::vector::push_back [function] [call site] 00044
4 on_header_field [function] [call site] 00045
4 std::vector::size [function] [call site] 00049
4 std::vector::front [function] [call site] 00050
4 json2pb::JsonValueToProtoField [function] [call site] 00051
5 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00053
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00055
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00056
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00059
5 google::protobuf::Message*::GetReflection [function] [call site] 00060
5 google::protobuf::FieldDescriptor*::cpp_type [function] [call site] 00061
5 CASE_FIELD_TYPE [function] [call site] 00062
5 CASE_FIELD_TYPE [function] [call site] 00063
5 CASE_FIELD_TYPE [function] [call site] 00064
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00065
5 json2pb::convert_int64_type [function] [call site] 00069
6 AddInt64 [function] [call site] 00071
7 Prefix [function] [call site] 00072
8 template [call site] 00074
8 Put [function] [call site] 00075
9 RAPIDJSON_ASSERT [function] [call site] 00076
8 RAPIDJSON_ASSERT [function] [call site] 00078
8 RAPIDJSON_ASSERT [function] [call site] 00079
7 WriteInt64 [function] [call site] 00080
8 i64toa [function] [call site] 00081
9 static_cast<uint64_t> [function] [call site] 00082
9 u64toa [function] [call site] 00083
10 GetDigitsLut [function] [call site] 00084
10 static_cast<uint32_t> [function] [call site] 00085
10 static_cast<uint32_t> [function] [call site] 00086
10 static_cast<uint32_t> [function] [call site] 00087
10 static_cast<uint32_t> [function] [call site] 00088
10 static_cast<char> [function] [call site] 00089
10 static_cast<char> [function] [call site] 00090
10 static_cast<char> [function] [call site] 00091
10 static_cast<char> [function] [call site] 00092
10 static_cast<uint32_t> [function] [call site] 00093
10 static_cast<uint32_t> [function] [call site] 00094
6 GetInt64 [function] [call site] 00096
7 RAPIDJSON_ASSERT [function] [call site] 00097
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00098
6 butil::StringToInt64 [function] [call site] 00101
7 butil::StringToIntImpl [function] [call site] 00102
8 butil::WhitespaceHelper<char>::Invoke [function] [call site] 00103
9 static_cast<unsigned [call site] 00105
6 GetString [function] [call site] 00108
7 template [call site] 00109
7 template [call site] 00110
7 template [call site] 00111
6 GetStringLength [function] [call site] 00112
7 RAPIDJSON_ASSERT [function] [call site] 00113
7 GetLength [function] [call site] 00115
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00117
6 json2pb::value_invalid [function] [call site] 00118
7 google::protobuf::FieldDescriptor*::is_optional [function] [call site] 00119
7 json2pb::string_append_value [function] [call site] 00123
8 GetBool [function] [call site] 00128
9 RAPIDJSON_ASSERT [function] [call site] 00129
8 butil::string_appendf [function] [call site] 00132
9 butil::string_vappendf [function] [call site] 00134
10 std::string*::size [function] [call site] 00135
10 butil::string_printf_impl [function] [call site] 00136
11 capacity [function] [call site] 00138
11 capacity [function] [call site] 00140
11 butil::vsnprintf [function] [call site] 00142
12 butil::vsnprintf [function] [call site] 00143
11 butil::vsnprintf [function] [call site] 00147
10 std::string*::resize [function] [call site] 00149
8 GetInt [function] [call site] 00151
9 RAPIDJSON_ASSERT [function] [call site] 00152
8 butil::string_appendf [function] [call site] 00154
8 GetUint [function] [call site] 00155
9 RAPIDJSON_ASSERT [function] [call site] 00156
8 butil::string_appendf [function] [call site] 00158
8 butil::string_appendf [function] [call site] 00161
8 GetUint64 [function] [call site] 00162
9 RAPIDJSON_ASSERT [function] [call site] 00163
8 butil::string_appendf [function] [call site] 00165
8 GetDouble [function] [call site] 00166
9 RAPIDJSON_ASSERT [function] [call site] 00167
9 RAPIDJSON_ASSERT [function] [call site] 00169
8 std::string*::push_back [function] [call site] 00171
8 GetString [function] [call site] 00173
8 GetStringLength [function] [call site] 00174
8 std::string*::push_back [function] [call site] 00175
7 butil::string_appendf [function] [call site] 00180
7 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00181
5 json2pb::convert_int64_type [function] [call site] 00182
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00183
5 json2pb::convert_uint64_type [function] [call site] 00185
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00187
6 GetUint64 [function] [call site] 00188
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00189
6 GetUint64 [function] [call site] 00190
6 butil::StringToUint64 [function] [call site] 00192
7 butil::StringToIntImpl [function] [call site] 00193
6 GetString [function] [call site] 00194
6 GetStringLength [function] [call site] 00195
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00196
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00197
6 json2pb::value_invalid [function] [call site] 00198
5 json2pb::convert_uint64_type [function] [call site] 00199
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00200
5 json2pb::convert_float_type [function] [call site] 00202
6 google::protobuf::Reflection*::AddFloat [function] [call site] 00204
6 GetDouble [function] [call site] 00205
6 google::protobuf::Reflection*::SetFloat [function] [call site] 00206
6 GetDouble [function] [call site] 00207
6 json2pb::convert_string_to_double_float_type [function] [call site] 00209
7 GetString [function] [call site] 00210
7 strcasecmp [function] [call site] 00211
7 std::numeric_limits<T>::quiet_NaN [function] [call site] 00212
7 strcasecmp [function] [call site] 00213
7 std::numeric_limits<T>::infinity [function] [call site] 00214
7 strcasecmp [function] [call site] 00215
7 std::numeric_limits<T>::infinity [function] [call site] 00216
7 json2pb::value_invalid [function] [call site] 00217
6 json2pb::value_invalid [function] [call site] 00219
5 json2pb::convert_float_type [function] [call site] 00220
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00221
5 json2pb::convert_double_type [function] [call site] 00223
6 google::protobuf::Reflection*::AddDouble [function] [call site] 00225
6 GetDouble [function] [call site] 00226
6 google::protobuf::Reflection*::SetDouble [function] [call site] 00227
6 GetDouble [function] [call site] 00228
6 json2pb::convert_string_to_double_float_type [function] [call site] 00230
6 json2pb::value_invalid [function] [call site] 00231
5 json2pb::convert_double_type [function] [call site] 00232
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00233
5 J2PCHECKTYPE [function] [call site] 00235
5 GetString [function] [call site] 00236
5 GetStringLength [function] [call site] 00237
5 mcpack2pb::set_type [function] [call site] 00238
5 butil::Base64Decode [function] [call site] 00239
6 std::string::resize [function] [call site] 00240
6 modp_b64_decode_len [function] [call site] 00241
6 modp_b64_decode [function] [call site] 00244
6 butil::data [function] [call site] 00245
6 std::string::resize [function] [call site] 00246
5 J2PERROR_WITH_PB [function] [call site] 00250
5 std::string::c_str [function] [call site] 00251
5 brpc::AMFArray::AddString [function] [call site] 00252
6 brpc::AMFArray::AddField [function] [call site] 00253
7 arraysize [function] [call site] 00254
7 arraysize [function] [call site] 00255
7 brpc::AMFArray::size [function] [call site] 00256
7 brpc::AMFArray::size [function] [call site] 00258
5 J2PCHECKTYPE [function] [call site] 00260
5 GetString [function] [call site] 00261
5 GetStringLength [function] [call site] 00262
5 mcpack2pb::set_type [function] [call site] 00263
5 butil::Base64Decode [function] [call site] 00264
5 J2PERROR_WITH_PB [function] [call site] 00265
5 std::string::c_str [function] [call site] 00266
5 brpc::RedisReply::SetString [function] [call site] 00267
6 brpc::RedisReply::SetStringImpl [function] [call site] 00268
7 brpc::RedisReply::Reset [function] [call site] 00269
7 brpc::RedisReply::size [function] [call site] 00270
7 brpc::RedisReply::data [function] [call site] 00272
8 brpc::RedisReply::is_string [function] [call site] 00273
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00274
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00275
8 RedisReplyTypeToString [function] [call site] 00277
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00278
7 brpc::RedisReply::data [function] [call site] 00282
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00283
5 json2pb::convert_enum_type [function] [call site] 00285
6 json2pb::convert_enum_type [function] [call site] 00287
7 json2pb::convert_enum_type [function] [call site] 00289
7 GetInt [function] [call site] 00290
8 RAPIDJSON_ASSERT [function] [call site] 00291
7 json2pb::convert_enum_type [function] [call site] 00293
7 butil::Version::GetString [function] [call site] 00294
7 json2pb::value_invalid [function] [call site] 00304
7 google::protobuf::Reflection*::AddEnum [function] [call site] 00305
7 google::protobuf::Reflection*::SetEnum [function] [call site] 00306
6 json2pb::convert_enum_type [function] [call site] 00309
6 butil::Version::GetString [function] [call site] 00310
6 json2pb::value_invalid [function] [call site] 00311
6 google::protobuf::Reflection*::AddEnum [function] [call site] 00312
6 google::protobuf::Reflection*::SetEnum [function] [call site] 00313
5 json2pb::convert_enum_type [function] [call site] 00314
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00315
5 J2PCHECKTYPE [function] [call site] 00317
5 json2pb::JsonValueToProtoMessage [function] [call site] 00318
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00319
5 json2pb::JsonValueToProtoMessage [function] [call site] 00320
5 google::protobuf::Reflection*::MutableMessage [function] [call site] 00321
4 std::vector::front [function] [call site] 00322
4 J2PERROR_WITH_PB [function] [call site] 00323
4 std::vector::size [function] [call site] 00324
4 pbrpcframework::find_method_by_name [function] [call site] 00325
5 brpc::Server::session_local_data_pool [function] [call site] 00326
5 ServiceDescriptor*::FindMethodByName [function] [call site] 00328
4 FindMember [function] [call site] 00344
5 FindMember [function] [call site] 00345
4 MemberEnd [function] [call site] 00347
5 RAPIDJSON_ASSERT [function] [call site] 00348
5 ConstMemberIterator [function] [call site] 00350
4 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00351
4 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00353
4 FindMember [function] [call site] 00354
4 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00356
4 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00358
4 json2pb::IsProtobufMap [function] [call site] 00359
5 mcpack2pb::set_type [function] [call site] 00360
5 FieldDescriptor*::is_repeated [function] [call site] 00361
5 FieldDescriptor*::message_type [function] [call site] 00362
5 mcpack2pb::ObjectIterator::field_count [function] [call site] 00363
5 on_header_field [function] [call site] 00364
5 FieldDescriptor*::is_repeated [function] [call site] 00367
5 FieldDescriptor*::cpp_type [function] [call site] 00368
5 pbrpcframework::find_method_by_name [function] [call site] 00370
6 brpc::Server::session_local_data_pool [function] [call site] 00371
6 ServiceDescriptor*::FindMethodByName [function] [call site] 00373
5 on_header_field [function] [call site] 00374
5 pbrpcframework::find_method_by_name [function] [call site] 00376
4 json2pb::JsonMapToProtoMap [function] [call site] 00378
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00381
5 google::protobuf::Message*::GetReflection [function] [call site] 00382
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00383
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00384
5 MemberBegin [function] [call site] 00385
6 RAPIDJSON_ASSERT [function] [call site] 00386
6 ConstMemberIterator [function] [call site] 00388
5 MemberEnd [function] [call site] 00389
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00390
5 google::protobuf::Message*::GetReflection [function] [call site] 00391
5 brpc::RedisReply::SetString [function] [call site] 00392
5 std::string [function] [call site] 00393
5 butil::Version::GetString [function] [call site] 00394
5 GetStringLength [function] [call site] 00403
6 RAPIDJSON_ASSERT [function] [call site] 00404
6 GetLength [function] [call site] 00406
5 json2pb::JsonValueToProtoField [function] [call site] 00407
4 json2pb::JsonValueToProtoField [function] [call site] 00408