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
415 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 std::string*::clear [function] [call site] 00003
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::Parse [function] [call site] 00022
3 GenericDocument::HasParseError [function] [call site] 00024
3 GenericDocument::GetParseError [function] [call site] 00026
3 J2PERROR_WITH_PB [function] [call site] 00028
3 BUTIL_RAPIDJSON_NAMESPACE::GetParseError_En [function] [call site] 00029
3 GenericDocument::GetParseError [function] [call site] 00030
3 json2pb::JsonValueToProtoMessage [function] [call site] 00031
4 J2PERROR_WITH_PB [function] [call site] 00032
4 EvilService::GetDescriptor [function] [call site] 00033
4 J2PERROR_WITH_PB [function] [call site] 00036
4 google::protobuf::Message*::GetReflection [function] [call site] 00037
4 std::vector::reserve [function] [call site] 00038
4 google::protobuf::Descriptor*::extension_range_count [function] [call site] 00039
4 google::protobuf::Descriptor*::extension_range [function] [call site] 00040
4 google::protobuf::Descriptor::ExtensionRange*::start_number [function] [call site] 00041
4 google::protobuf::Descriptor::ExtensionRange*::end_number [function] [call site] 00042
4 google::protobuf::Reflection*::FindKnownExtensionByNumber [function] [call site] 00043
4 std::vector::push_back [function] [call site] 00044
4 mcpack2pb::ObjectIterator::field_count [function] [call site] 00045
4 std::vector::push_back [function] [call site] 00046
4 on_header_field [function] [call site] 00047
4 std::vector::size [function] [call site] 00051
4 std::vector::front [function] [call site] 00052
4 json2pb::JsonValueToProtoField [function] [call site] 00053
5 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00055
5 butil::EnsureString [function] [call site] 00057
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00058
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00059
5 butil::EnsureString [function] [call site] 00062
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00063
5 google::protobuf::Message*::GetReflection [function] [call site] 00064
5 google::protobuf::FieldDescriptor*::cpp_type [function] [call site] 00065
5 CASE_FIELD_TYPE [function] [call site] 00066
5 CASE_FIELD_TYPE [function] [call site] 00067
5 CASE_FIELD_TYPE [function] [call site] 00068
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00069
5 json2pb::convert_int64_type [function] [call site] 00073
6 AddInt64 [function] [call site] 00075
7 Prefix [function] [call site] 00076
8 template [call site] 00078
8 Put [function] [call site] 00079
9 RAPIDJSON_ASSERT [function] [call site] 00080
8 RAPIDJSON_ASSERT [function] [call site] 00082
8 RAPIDJSON_ASSERT [function] [call site] 00083
7 WriteInt64 [function] [call site] 00084
8 i64toa [function] [call site] 00085
9 static_cast<uint64_t> [function] [call site] 00086
9 u64toa [function] [call site] 00087
10 GetDigitsLut [function] [call site] 00088
10 static_cast<uint32_t> [function] [call site] 00089
10 static_cast<uint32_t> [function] [call site] 00090
10 static_cast<uint32_t> [function] [call site] 00091
10 static_cast<uint32_t> [function] [call site] 00092
10 static_cast<char> [function] [call site] 00093
10 static_cast<char> [function] [call site] 00094
10 static_cast<char> [function] [call site] 00095
10 static_cast<char> [function] [call site] 00096
10 static_cast<uint32_t> [function] [call site] 00097
10 static_cast<uint32_t> [function] [call site] 00098
6 GetInt64 [function] [call site] 00100
7 RAPIDJSON_ASSERT [function] [call site] 00101
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00102
6 butil::StringToInt64 [function] [call site] 00105
7 butil::StringToIntImpl [function] [call site] 00106
8 butil::WhitespaceHelper<char>::Invoke [function] [call site] 00107
9 static_cast<unsigned [call site] 00109
6 GetString [function] [call site] 00112
7 template [call site] 00113
7 template [call site] 00114
7 template [call site] 00115
6 GetStringLength [function] [call site] 00116
7 RAPIDJSON_ASSERT [function] [call site] 00117
7 GetLength [function] [call site] 00119
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00121
6 json2pb::value_invalid [function] [call site] 00122
7 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00123
7 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00124
7 std::string*::empty [function] [call site] 00125
7 json2pb::string_append_value [function] [call site] 00128
8 GetBool [function] [call site] 00133
9 RAPIDJSON_ASSERT [function] [call site] 00134
8 butil::string_appendf [function] [call site] 00137
9 butil::string_vappendf [function] [call site] 00139
10 std::string*::size [function] [call site] 00140
10 butil::string_printf_impl [function] [call site] 00141
11 capacity [function] [call site] 00143
11 capacity [function] [call site] 00145
11 butil::vsnprintf [function] [call site] 00147
12 butil::vsnprintf [function] [call site] 00148
11 butil::vsnprintf [function] [call site] 00152
10 std::string*::resize [function] [call site] 00154
8 GetInt [function] [call site] 00156
9 RAPIDJSON_ASSERT [function] [call site] 00157
8 butil::string_appendf [function] [call site] 00159
8 GetUint [function] [call site] 00160
9 RAPIDJSON_ASSERT [function] [call site] 00161
8 butil::string_appendf [function] [call site] 00163
8 butil::string_appendf [function] [call site] 00166
8 GetUint64 [function] [call site] 00167
9 RAPIDJSON_ASSERT [function] [call site] 00168
8 butil::string_appendf [function] [call site] 00170
8 GetDouble [function] [call site] 00171
9 RAPIDJSON_ASSERT [function] [call site] 00172
9 RAPIDJSON_ASSERT [function] [call site] 00174
8 std::string*::push_back [function] [call site] 00176
8 GetString [function] [call site] 00178
8 GetStringLength [function] [call site] 00179
8 std::string*::push_back [function] [call site] 00180
7 butil::string_appendf [function] [call site] 00185
7 butil::EnsureString [function] [call site] 00186
7 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00187
5 json2pb::convert_int64_type [function] [call site] 00188
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00189
5 json2pb::convert_uint64_type [function] [call site] 00191
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00193
6 GetUint64 [function] [call site] 00194
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00195
6 GetUint64 [function] [call site] 00196
6 butil::StringToUint64 [function] [call site] 00198
7 butil::StringToIntImpl [function] [call site] 00199
6 GetString [function] [call site] 00200
6 GetStringLength [function] [call site] 00201
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00202
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00203
6 json2pb::value_invalid [function] [call site] 00204
5 json2pb::convert_uint64_type [function] [call site] 00205
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00206
5 json2pb::convert_float_type [function] [call site] 00208
6 google::protobuf::Reflection*::AddFloat [function] [call site] 00210
6 GetDouble [function] [call site] 00211
6 google::protobuf::Reflection*::SetFloat [function] [call site] 00212
6 GetDouble [function] [call site] 00213
6 json2pb::convert_string_to_double_float_type [function] [call site] 00215
7 GetString [function] [call site] 00216
7 strcasecmp [function] [call site] 00217
7 std::numeric_limits<T>::quiet_NaN [function] [call site] 00218
7 strcasecmp [function] [call site] 00219
7 std::numeric_limits<T>::infinity [function] [call site] 00220
7 strcasecmp [function] [call site] 00221
7 std::numeric_limits<T>::infinity [function] [call site] 00222
7 json2pb::value_invalid [function] [call site] 00223
6 json2pb::value_invalid [function] [call site] 00225
5 json2pb::convert_float_type [function] [call site] 00226
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00227
5 json2pb::convert_double_type [function] [call site] 00229
6 google::protobuf::Reflection*::AddDouble [function] [call site] 00231
6 GetDouble [function] [call site] 00232
6 google::protobuf::Reflection*::SetDouble [function] [call site] 00233
6 GetDouble [function] [call site] 00234
6 json2pb::convert_string_to_double_float_type [function] [call site] 00236
6 json2pb::value_invalid [function] [call site] 00237
5 json2pb::convert_double_type [function] [call site] 00238
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00239
5 J2PCHECKTYPE [function] [call site] 00241
5 GetString [function] [call site] 00242
5 GetStringLength [function] [call site] 00243
5 mcpack2pb::set_type [function] [call site] 00244
5 butil::Base64Decode [function] [call site] 00245
6 std::string::resize [function] [call site] 00246
6 modp_b64_decode_len [function] [call site] 00247
6 modp_b64_decode [function] [call site] 00250
6 butil::data [function] [call site] 00251
6 std::string::resize [function] [call site] 00252
5 J2PERROR_WITH_PB [function] [call site] 00256
5 std::string::c_str [function] [call site] 00257
5 brpc::AMFArray::AddString [function] [call site] 00258
6 brpc::AMFArray::AddField [function] [call site] 00259
7 arraysize [function] [call site] 00260
7 arraysize [function] [call site] 00261
7 brpc::AMFArray::size [function] [call site] 00262
7 brpc::AMFArray::size [function] [call site] 00264
5 J2PCHECKTYPE [function] [call site] 00266
5 GetString [function] [call site] 00267
5 GetStringLength [function] [call site] 00268
5 mcpack2pb::set_type [function] [call site] 00269
5 butil::Base64Decode [function] [call site] 00270
5 J2PERROR_WITH_PB [function] [call site] 00271
5 std::string::c_str [function] [call site] 00272
5 brpc::RedisReply::SetString [function] [call site] 00273
6 brpc::RedisReply::SetStringImpl [function] [call site] 00274
7 brpc::RedisReply::Reset [function] [call site] 00275
7 brpc::RedisReply::size [function] [call site] 00276
7 brpc::RedisReply::data [function] [call site] 00278
8 brpc::RedisReply::is_string [function] [call site] 00279
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00280
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00281
8 RedisReplyTypeToString [function] [call site] 00283
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00284
7 brpc::RedisReply::data [function] [call site] 00288
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00289
5 json2pb::convert_enum_type [function] [call site] 00291
6 json2pb::convert_enum_type [function] [call site] 00293
7 json2pb::convert_enum_type [function] [call site] 00295
7 GetInt [function] [call site] 00296
8 RAPIDJSON_ASSERT [function] [call site] 00297
7 json2pb::convert_enum_type [function] [call site] 00299
7 butil::Version::GetString [function] [call site] 00300
7 json2pb::value_invalid [function] [call site] 00310
7 google::protobuf::Reflection*::AddEnum [function] [call site] 00311
7 google::protobuf::Reflection*::SetEnum [function] [call site] 00312
6 json2pb::convert_enum_type [function] [call site] 00315
6 butil::Version::GetString [function] [call site] 00316
6 json2pb::value_invalid [function] [call site] 00317
6 google::protobuf::Reflection*::AddEnum [function] [call site] 00318
6 google::protobuf::Reflection*::SetEnum [function] [call site] 00319
5 json2pb::convert_enum_type [function] [call site] 00320
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00321
5 J2PCHECKTYPE [function] [call site] 00323
5 json2pb::JsonValueToProtoMessage [function] [call site] 00324
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00325
5 json2pb::JsonValueToProtoMessage [function] [call site] 00326
5 google::protobuf::Reflection*::MutableMessage [function] [call site] 00327
4 std::vector::front [function] [call site] 00328
4 J2PERROR_WITH_PB [function] [call site] 00329
4 std::vector::size [function] [call site] 00330
4 butil::EnsureString [function] [call site] 00331
4 pbrpcframework::find_method_by_name [function] [call site] 00332
5 brpc::Server::session_local_data_pool [function] [call site] 00333
5 ServiceDescriptor*::FindMethodByName [function] [call site] 00335
4 FindMember [function] [call site] 00351
5 FindMember [function] [call site] 00352
4 MemberEnd [function] [call site] 00354
5 RAPIDJSON_ASSERT [function] [call site] 00355
5 ConstMemberIterator [function] [call site] 00357
4 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00358
4 butil::EnsureString [function] [call site] 00360
4 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00361
4 FindMember [function] [call site] 00362
4 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00364
4 butil::EnsureString [function] [call site] 00366
4 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00367
4 json2pb::IsProtobufMap [function] [call site] 00368
5 mcpack2pb::set_type [function] [call site] 00369
5 FieldDescriptor*::is_repeated [function] [call site] 00370
5 FieldDescriptor*::message_type [function] [call site] 00371
5 mcpack2pb::ObjectIterator::field_count [function] [call site] 00372
5 on_header_field [function] [call site] 00373
5 FieldDescriptor*::is_repeated [function] [call site] 00376
5 FieldDescriptor*::cpp_type [function] [call site] 00377
5 pbrpcframework::find_method_by_name [function] [call site] 00378
6 brpc::Server::session_local_data_pool [function] [call site] 00379
6 ServiceDescriptor*::FindMethodByName [function] [call site] 00381
5 on_header_field [function] [call site] 00382
5 pbrpcframework::find_method_by_name [function] [call site] 00383
4 json2pb::JsonMapToProtoMap [function] [call site] 00385
5 butil::EnsureString [function] [call site] 00388
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00389
5 google::protobuf::Message*::GetReflection [function] [call site] 00390
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00391
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00392
5 MemberBegin [function] [call site] 00393
6 RAPIDJSON_ASSERT [function] [call site] 00394
6 ConstMemberIterator [function] [call site] 00396
5 MemberEnd [function] [call site] 00397
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00398
5 google::protobuf::Message*::GetReflection [function] [call site] 00399
5 brpc::RedisReply::SetString [function] [call site] 00400
5 std::string [function] [call site] 00401
5 butil::Version::GetString [function] [call site] 00402
5 GetStringLength [function] [call site] 00411
6 RAPIDJSON_ASSERT [function] [call site] 00412
6 GetLength [function] [call site] 00414
5 json2pb::JsonValueToProtoField [function] [call site] 00415
4 json2pb::JsonValueToProtoField [function] [call site] 00416