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
422 0 EP call site: 00000 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] 00010
4 RAPIDJSON_ASSERT [function] [call site] 00011
4 GenericDocument::ParseStream [function] [call site] 00012
5 brpc::AMFField::SetNull [function] [call site] 00013
6 brpc::AMFField::Clear [function] [call site] 00014
7 brpc::AMFField::SlowerClear [function] [call site] 00015
8 brpc::AMFField::type [function] [call site] 00016
5 GetAllocator [function] [call site] 00018
5 GenericReader::template [call site] 00019
5 RAPIDJSON_ASSERT [function] [call site] 00020
5 RawAssign [function] [call site] 00023
5 template [call site] 00024
3 GenericDocument::GetErrorOffset [function] [call site] 00026
3 GenericDocument::Parse [function] [call site] 00028
3 GenericDocument::HasParseError [function] [call site] 00030
3 GenericDocument::GetParseError [function] [call site] 00032
3 J2PERROR_WITH_PB [function] [call site] 00034
3 BUTIL_RAPIDJSON_NAMESPACE::GetParseError_En [function] [call site] 00035
3 GenericDocument::GetParseError [function] [call site] 00036
3 json2pb::JsonValueToProtoMessage [function] [call site] 00037
4 J2PERROR_WITH_PB [function] [call site] 00038
4 EvilService::GetDescriptor [function] [call site] 00039
4 J2PERROR_WITH_PB [function] [call site] 00042
4 google::protobuf::Message*::GetReflection [function] [call site] 00043
4 std::vector::reserve [function] [call site] 00044
4 google::protobuf::Descriptor*::extension_range_count [function] [call site] 00045
4 google::protobuf::Descriptor*::extension_range [function] [call site] 00046
4 google::protobuf::Descriptor::ExtensionRange*::start_number [function] [call site] 00047
4 google::protobuf::Descriptor::ExtensionRange*::end_number [function] [call site] 00048
4 google::protobuf::Reflection*::FindKnownExtensionByNumber [function] [call site] 00049
4 std::vector::push_back [function] [call site] 00050
4 mcpack2pb::ObjectIterator::field_count [function] [call site] 00051
4 std::vector::push_back [function] [call site] 00052
4 on_header_field [function] [call site] 00053
4 std::vector::size [function] [call site] 00057
4 std::vector::front [function] [call site] 00058
4 json2pb::JsonValueToProtoField [function] [call site] 00059
5 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00061
5 butil::EnsureString [function] [call site] 00063
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00064
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00065
5 butil::EnsureString [function] [call site] 00068
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00069
5 google::protobuf::Message*::GetReflection [function] [call site] 00070
5 google::protobuf::FieldDescriptor*::cpp_type [function] [call site] 00071
5 CASE_FIELD_TYPE [function] [call site] 00072
5 CASE_FIELD_TYPE [function] [call site] 00073
5 CASE_FIELD_TYPE [function] [call site] 00074
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00075
5 json2pb::convert_int64_type [function] [call site] 00079
6 AddInt64 [function] [call site] 00081
7 Prefix [function] [call site] 00082
8 template [call site] 00084
8 Put [function] [call site] 00085
9 RAPIDJSON_ASSERT [function] [call site] 00086
8 RAPIDJSON_ASSERT [function] [call site] 00088
8 RAPIDJSON_ASSERT [function] [call site] 00089
7 WriteInt64 [function] [call site] 00090
8 i64toa [function] [call site] 00091
9 static_cast<uint64_t> [function] [call site] 00092
9 u64toa [function] [call site] 00093
10 GetDigitsLut [function] [call site] 00094
10 static_cast<uint32_t> [function] [call site] 00095
10 static_cast<uint32_t> [function] [call site] 00096
10 static_cast<uint32_t> [function] [call site] 00097
10 static_cast<uint32_t> [function] [call site] 00098
10 static_cast<char> [function] [call site] 00099
10 static_cast<char> [function] [call site] 00100
10 static_cast<char> [function] [call site] 00101
10 static_cast<char> [function] [call site] 00102
10 static_cast<uint32_t> [function] [call site] 00103
10 static_cast<uint32_t> [function] [call site] 00104
6 GetInt64 [function] [call site] 00106
7 RAPIDJSON_ASSERT [function] [call site] 00107
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00108
6 butil::StringToInt64 [function] [call site] 00111
7 butil::StringToIntImpl [function] [call site] 00112
8 butil::WhitespaceHelper<char>::Invoke [function] [call site] 00113
9 static_cast<unsigned [call site] 00115
6 GetString [function] [call site] 00118
7 template [call site] 00119
7 template [call site] 00120
7 template [call site] 00121
6 GetStringLength [function] [call site] 00122
7 RAPIDJSON_ASSERT [function] [call site] 00123
7 GetLength [function] [call site] 00125
6 google::protobuf::Reflection*::SetInt64 [function] [call site] 00127
6 json2pb::value_invalid [function] [call site] 00128
7 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00129
7 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00130
7 std::string*::empty [function] [call site] 00131
7 json2pb::string_append_value [function] [call site] 00134
8 GetBool [function] [call site] 00139
9 RAPIDJSON_ASSERT [function] [call site] 00140
8 butil::string_appendf [function] [call site] 00143
9 butil::string_vappendf [function] [call site] 00145
10 std::string*::size [function] [call site] 00146
10 butil::string_printf_impl [function] [call site] 00147
11 capacity [function] [call site] 00149
11 capacity [function] [call site] 00151
11 butil::vsnprintf [function] [call site] 00153
12 butil::vsnprintf [function] [call site] 00154
11 butil::vsnprintf [function] [call site] 00158
10 std::string*::resize [function] [call site] 00160
8 GetInt [function] [call site] 00162
9 RAPIDJSON_ASSERT [function] [call site] 00163
8 butil::string_appendf [function] [call site] 00165
8 GetUint [function] [call site] 00166
9 RAPIDJSON_ASSERT [function] [call site] 00167
8 butil::string_appendf [function] [call site] 00169
8 butil::string_appendf [function] [call site] 00172
8 GetUint64 [function] [call site] 00173
9 RAPIDJSON_ASSERT [function] [call site] 00174
8 butil::string_appendf [function] [call site] 00176
8 GetDouble [function] [call site] 00177
9 RAPIDJSON_ASSERT [function] [call site] 00178
9 RAPIDJSON_ASSERT [function] [call site] 00180
8 std::string*::push_back [function] [call site] 00182
8 GetString [function] [call site] 00184
8 GetStringLength [function] [call site] 00185
8 std::string*::push_back [function] [call site] 00186
7 butil::string_appendf [function] [call site] 00191
7 butil::EnsureString [function] [call site] 00192
7 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00193
5 json2pb::convert_int64_type [function] [call site] 00194
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00195
5 json2pb::convert_uint64_type [function] [call site] 00197
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00199
6 GetUint64 [function] [call site] 00200
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00201
6 GetUint64 [function] [call site] 00202
6 butil::StringToUint64 [function] [call site] 00204
7 butil::StringToIntImpl [function] [call site] 00205
6 GetString [function] [call site] 00206
6 GetStringLength [function] [call site] 00207
6 google::protobuf::Reflection*::AddUInt64 [function] [call site] 00208
6 google::protobuf::Reflection*::SetUInt64 [function] [call site] 00209
6 json2pb::value_invalid [function] [call site] 00210
5 json2pb::convert_uint64_type [function] [call site] 00211
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00212
5 json2pb::convert_float_type [function] [call site] 00214
6 google::protobuf::Reflection*::AddFloat [function] [call site] 00216
6 GetDouble [function] [call site] 00217
6 google::protobuf::Reflection*::SetFloat [function] [call site] 00218
6 GetDouble [function] [call site] 00219
6 json2pb::convert_string_to_double_float_type [function] [call site] 00221
7 GetString [function] [call site] 00222
7 strcasecmp [function] [call site] 00223
7 std::numeric_limits<T>::quiet_NaN [function] [call site] 00224
7 strcasecmp [function] [call site] 00225
7 std::numeric_limits<T>::infinity [function] [call site] 00226
7 strcasecmp [function] [call site] 00227
7 std::numeric_limits<T>::infinity [function] [call site] 00228
7 json2pb::value_invalid [function] [call site] 00229
6 json2pb::value_invalid [function] [call site] 00231
5 json2pb::convert_float_type [function] [call site] 00232
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00233
5 json2pb::convert_double_type [function] [call site] 00235
6 google::protobuf::Reflection*::AddDouble [function] [call site] 00237
6 GetDouble [function] [call site] 00238
6 google::protobuf::Reflection*::SetDouble [function] [call site] 00239
6 GetDouble [function] [call site] 00240
6 json2pb::convert_string_to_double_float_type [function] [call site] 00242
6 json2pb::value_invalid [function] [call site] 00243
5 json2pb::convert_double_type [function] [call site] 00244
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00245
5 J2PCHECKTYPE [function] [call site] 00247
5 GetString [function] [call site] 00248
5 GetStringLength [function] [call site] 00249
5 mcpack2pb::set_type [function] [call site] 00250
5 butil::Base64Decode [function] [call site] 00251
6 std::string::resize [function] [call site] 00252
6 modp_b64_decode_len [function] [call site] 00253
6 modp_b64_decode [function] [call site] 00256
6 butil::data [function] [call site] 00257
6 std::string::resize [function] [call site] 00258
5 J2PERROR_WITH_PB [function] [call site] 00262
5 std::string::c_str [function] [call site] 00263
5 brpc::AMFArray::AddString [function] [call site] 00264
6 brpc::AMFArray::AddField [function] [call site] 00265
7 arraysize [function] [call site] 00266
7 arraysize [function] [call site] 00267
7 brpc::AMFArray::size [function] [call site] 00268
7 brpc::AMFArray::size [function] [call site] 00270
5 J2PCHECKTYPE [function] [call site] 00272
5 GetString [function] [call site] 00273
5 GetStringLength [function] [call site] 00274
5 mcpack2pb::set_type [function] [call site] 00275
5 butil::Base64Decode [function] [call site] 00276
5 J2PERROR_WITH_PB [function] [call site] 00277
5 std::string::c_str [function] [call site] 00278
5 brpc::RedisReply::SetString [function] [call site] 00279
6 brpc::RedisReply::SetStringImpl [function] [call site] 00280
7 brpc::RedisReply::Reset [function] [call site] 00281
7 brpc::RedisReply::size [function] [call site] 00282
7 brpc::RedisReply::data [function] [call site] 00284
8 brpc::RedisReply::is_string [function] [call site] 00285
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00286
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00287
8 RedisReplyTypeToString [function] [call site] 00289
8 butil::BasicStringPiece::BasicStringPiece [function] [call site] 00290
7 brpc::RedisReply::data [function] [call site] 00294
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00295
5 json2pb::convert_enum_type [function] [call site] 00297
6 json2pb::convert_enum_type [function] [call site] 00299
7 json2pb::convert_enum_type [function] [call site] 00301
7 GetInt [function] [call site] 00302
8 RAPIDJSON_ASSERT [function] [call site] 00303
7 json2pb::convert_enum_type [function] [call site] 00305
7 butil::Version::GetString [function] [call site] 00306
7 json2pb::value_invalid [function] [call site] 00316
7 google::protobuf::Reflection*::AddEnum [function] [call site] 00317
7 google::protobuf::Reflection*::SetEnum [function] [call site] 00318
6 json2pb::convert_enum_type [function] [call site] 00321
6 butil::Version::GetString [function] [call site] 00322
6 json2pb::value_invalid [function] [call site] 00323
6 google::protobuf::Reflection*::AddEnum [function] [call site] 00324
6 google::protobuf::Reflection*::SetEnum [function] [call site] 00325
5 json2pb::convert_enum_type [function] [call site] 00326
5 google::protobuf::FieldDescriptor*::is_repeated [function] [call site] 00327
5 J2PCHECKTYPE [function] [call site] 00329
5 json2pb::JsonValueToProtoMessage [function] [call site] 00330
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00331
5 json2pb::JsonValueToProtoMessage [function] [call site] 00332
5 google::protobuf::Reflection*::MutableMessage [function] [call site] 00333
4 std::vector::front [function] [call site] 00334
4 J2PERROR_WITH_PB [function] [call site] 00335
4 std::vector::size [function] [call site] 00336
4 butil::EnsureString [function] [call site] 00337
4 pbrpcframework::find_method_by_name [function] [call site] 00338
5 brpc::Server::session_local_data_pool [function] [call site] 00339
5 ServiceDescriptor*::FindMethodByName [function] [call site] 00341
4 FindMember [function] [call site] 00357
5 FindMember [function] [call site] 00358
4 MemberEnd [function] [call site] 00360
5 RAPIDJSON_ASSERT [function] [call site] 00361
5 ConstMemberIterator [function] [call site] 00363
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 FindMember [function] [call site] 00368
4 google::protobuf::FieldDescriptor*::is_required [function] [call site] 00370
4 butil::EnsureString [function] [call site] 00372
4 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00373
4 json2pb::IsProtobufMap [function] [call site] 00374
5 mcpack2pb::set_type [function] [call site] 00375
5 FieldDescriptor*::is_repeated [function] [call site] 00376
5 FieldDescriptor*::message_type [function] [call site] 00377
5 mcpack2pb::ObjectIterator::field_count [function] [call site] 00378
5 on_header_field [function] [call site] 00379
5 FieldDescriptor*::is_repeated [function] [call site] 00382
5 FieldDescriptor*::cpp_type [function] [call site] 00383
5 pbrpcframework::find_method_by_name [function] [call site] 00384
6 brpc::Server::session_local_data_pool [function] [call site] 00385
6 ServiceDescriptor*::FindMethodByName [function] [call site] 00387
5 on_header_field [function] [call site] 00388
5 pbrpcframework::find_method_by_name [function] [call site] 00389
4 json2pb::JsonMapToProtoMap [function] [call site] 00391
5 butil::EnsureString [function] [call site] 00394
5 google::protobuf::FieldDescriptor*::full_name [function] [call site] 00395
5 google::protobuf::Message*::GetReflection [function] [call site] 00396
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00397
5 google::protobuf::FieldDescriptor*::message_type [function] [call site] 00398
5 MemberBegin [function] [call site] 00399
6 RAPIDJSON_ASSERT [function] [call site] 00400
6 ConstMemberIterator [function] [call site] 00402
5 MemberEnd [function] [call site] 00403
5 google::protobuf::Reflection*::AddMessage [function] [call site] 00404
5 google::protobuf::Message*::GetReflection [function] [call site] 00405
5 brpc::RedisReply::SetString [function] [call site] 00406
5 std::string [function] [call site] 00407
5 butil::Version::GetString [function] [call site] 00408
5 GetStringLength [function] [call site] 00417
6 RAPIDJSON_ASSERT [function] [call site] 00418
6 GetLength [function] [call site] 00420
5 json2pb::JsonValueToProtoField [function] [call site] 00421
4 json2pb::JsonValueToProtoField [function] [call site] 00422