Fuzz introspector: subprojects/nlohmann_json/tests/src/fuzzer-parse_json.cpp
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
438 0 EP call site: 00000 nlohmann::detail::parser::parse

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 nlohmann::detail::parser::parse [function] [call site] 00001
2 nlohmann::detail::parser::sax_parse_internal [function] [call site] 00002
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00003
3 start_object [function] [call site] 00004
3 static_cast<std::size_t> [function] [call site] 00005
3 nlohmann::detail::parser::get_token [function] [call site] 00006
4 scan [function] [call site] 00007
5 skip_bom [function] [call site] 00008
6 get [function] [call site] 00009
7 get_character [function] [call site] 00010
8 std::fgetc [function] [call site] 00011
7 JSON_HEDLEY_LIKELY [function] [call site] 00012
7 push_back [function] [call site] 00016
8 JSON_HEDLEY_UNLIKELY [function] [call site] 00017
8 JSON_THROW [function] [call site] 00020
8 type_error::create [function] [call site] 00021
9 concat [function] [call site] 00022
10 concat_length [function] [call site] 00026
10 concat_into [function] [call site] 00027
10 std::forward<Args> [function] [call site] 00028
9 nlohmann::detail::exception::name [function] [call site] 00029
10 to_string [function] [call site] 00030
11 int_to_string [function] [call site] 00031
12 to_string [function] [call site] 00032
9 nlohmann::detail::exception::diagnostics [function] [call site] 00033
10 udt::legacy_type [function] [call site] 00034
10 start_array [function] [call site] 00038
10 std::vector::emplace_back [function] [call site] 00039
10 to_string [function] [call site] 00040
10 std::vector::emplace_back [function] [call site] 00041
10 alt_string::c_str [function] [call site] 00042
11 alt_string::c_str [function] [call site] 00043
12 alt_string::c_str [function] [call site] 00044
10 std::vector::empty [function] [call site] 00045
10 std::accumulate [function] [call site] 00046
10 std::vector::rbegin [function] [call site] 00047
10 std::vector::rend [function] [call site] 00048
10 nlohmann::detail::escape [function] [call site] 00049
11 nlohmann::detail::replace_substring [function] [call site] 00050
12 JSON_ASSERT [function] [call site] 00051
12 empty [function] [call site] 00052
13 alt_string::empty [function] [call site] 00053
14 alt_string::empty [function] [call site] 00054
15 alt_string::empty [function] [call site] 00055
13 alt_string::empty [function] [call site] 00056
14 alt_string::empty [function] [call site] 00057
12 find [function] [call site] 00058
13 is_object [function] [call site] 00061
13 alt_string::find [function] [call site] 00062
14 alt_string::find [function] [call site] 00063
15 alt_string::find [function] [call site] 00064
13 std::forward<KeyT> [function] [call site] 00065
12 nlohmann::detail::size [function] [call site] 00067
12 nlohmann::detail::size [function] [call site] 00069
11 nlohmann::detail::replace_substring [function] [call site] 00070
10 static_cast<void> [function] [call site] 00071
9 std::string::c_str [function] [call site] 00072
8 type_name [function] [call site] 00074
8 assert_invariant [function] [call site] 00076
8 array::capacity [function] [call site] 00077
8 alt_string::push_back [function] [call site] 00078
9 alt_string::push_back [function] [call site] 00079
10 alt_string::push_back [function] [call site] 00080
8 std::move [function] [call site] 00081
8 set_parent [function] [call site] 00082
9 detail::unknown_size [function] [call site] 00083
9 detail::unknown_size [function] [call site] 00084
9 JSON_ASSERT [function] [call site] 00085
9 JSON_HEDLEY_UNLIKELY [function] [call site] 00087
9 m_value::array::capacity [function] [call site] 00088
9 set_parents [function] [call site] 00089
9 set_parents [function] [call site] 00090
9 static_cast<void> [function] [call site] 00091
9 static_cast<void> [function] [call site] 00092
8 alt_string::push_back [function] [call site] 00093
9 alt_string::push_back [function] [call site] 00094
7 nlohmann::detail::binary_writer::to_char_type [function] [call site] 00095
8 reinterpret_cast<char*> [function] [call site] 00096
6 unget [function] [call site] 00099
7 JSON_HEDLEY_LIKELY [function] [call site] 00100
7 JSON_ASSERT [function] [call site] 00102
7 pop_back [function] [call site] 00104
8 JSON_HEDLEY_UNLIKELY [function] [call site] 00105
8 JSON_THROW [function] [call site] 00107
8 nlohmann::detail::out_of_range::create [function] [call site] 00108
9 nlohmann::detail::exception::name [function] [call site] 00109
9 nlohmann::detail::exception::diagnostics [function] [call site] 00110
9 std::string::c_str [function] [call site] 00111
5 scan_comment [function] [call site] 00115
5 skip_whitespace [function] [call site] 00116
5 static_cast<char_type> [function] [call site] 00117
5 static_cast<char_type> [function] [call site] 00118
5 static_cast<char_type> [function] [call site] 00119
5 static_cast<char_type> [function] [call site] 00120
5 scan_literal [function] [call site] 00121
5 std::array::data [function] [call site] 00122
5 std::array::size [function] [call site] 00123
5 static_cast<char_type> [function] [call site] 00124
5 static_cast<char_type> [function] [call site] 00125
5 static_cast<char_type> [function] [call site] 00126
5 static_cast<char_type> [function] [call site] 00127
5 static_cast<char_type> [function] [call site] 00128
5 scan_literal [function] [call site] 00129
5 std::array::data [function] [call site] 00130
5 std::array::size [function] [call site] 00131
5 static_cast<char_type> [function] [call site] 00132
5 static_cast<char_type> [function] [call site] 00133
5 static_cast<char_type> [function] [call site] 00134
5 static_cast<char_type> [function] [call site] 00135
5 scan_literal [function] [call site] 00136
5 std::array::data [function] [call site] 00137
5 std::array::size [function] [call site] 00138
5 scan_string [function] [call site] 00139
6 nlohmann::detail::input_adapter [function] [call site] 00140
7 nlohmann::detail::parse_error::create [function] [call site] 00141
8 nlohmann::detail::exception::name [function] [call site] 00142
8 nlohmann::detail::parse_error::position_string [function] [call site] 00143
8 nlohmann::detail::exception::diagnostics [function] [call site] 00146
8 std::string::c_str [function] [call site] 00147
6 nlohmann::detail::lexer<json, [call site] 00148
6 std::move [function] [call site] 00149
5 scan_number [function] [call site] 00150
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00152
3 end_object [function] [call site] 00153
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00154
3 parse_error [function] [call site] 00155
3 get_position [function] [call site] 00156
3 get_token_string [function] [call site] 00157
4 static_cast<unsigned [call site] 00158
4 static_cast<void> [function] [call site] 00159
4 std::array::data [function] [call site] 00160
4 std::array::size [function] [call site] 00161
4 static_cast<unsigned [call site] 00162
4 std::array::data [function] [call site] 00163
4 std::string::push_back [function] [call site] 00164
4 static_cast<std::string::value_type> [function] [call site] 00165
3 parse_error::create [function] [call site] 00166
4 nlohmann::detail::exception::name [function] [call site] 00168
4 parse_error::position_string [function] [call site] 00169
4 nlohmann::detail::exception::diagnostics [function] [call site] 00173
4 std::string::c_str [function] [call site] 00174
3 get_position [function] [call site] 00175
3 nlohmann::detail::parser::exception_message [function] [call site] 00176
4 get_error_message [function] [call site] 00179
5 nlohmann::detail::input_adapter [function] [call site] 00180
5 nlohmann::detail::lexer<json, [call site] 00181
5 std::move [function] [call site] 00182
5 scan [function] [call site] 00183
6 skip_whitespace [function] [call site] 00185
6 scan_comment [function] [call site] 00186
6 skip_whitespace [function] [call site] 00187
6 static_cast<char_type> [function] [call site] 00188
6 static_cast<char_type> [function] [call site] 00189
6 static_cast<char_type> [function] [call site] 00190
6 static_cast<char_type> [function] [call site] 00191
6 scan_literal [function] [call site] 00192
6 std::array::data [function] [call site] 00193
6 std::array::size [function] [call site] 00194
6 static_cast<char_type> [function] [call site] 00195
6 static_cast<char_type> [function] [call site] 00196
6 static_cast<char_type> [function] [call site] 00197
6 static_cast<char_type> [function] [call site] 00198
6 static_cast<char_type> [function] [call site] 00199
6 scan_literal [function] [call site] 00200
6 std::array::data [function] [call site] 00201
6 std::array::size [function] [call site] 00202
6 static_cast<char_type> [function] [call site] 00203
6 static_cast<char_type> [function] [call site] 00204
6 static_cast<char_type> [function] [call site] 00205
6 static_cast<char_type> [function] [call site] 00206
6 scan_literal [function] [call site] 00207
6 std::array::data [function] [call site] 00208
6 std::array::size [function] [call site] 00209
6 scan_string [function] [call site] 00210
6 scan_number [function] [call site] 00211
5 get_error_message [function] [call site] 00213
6 nlohmann::detail::input_adapter [function] [call site] 00214
6 nlohmann::detail::lexer<json, [call site] 00215
6 std::move [function] [call site] 00216
6 get_error_message [function] [call site] 00218
4 get_token_string [function] [call site] 00219
4 nlohmann::detail::lexer_base::token_type_name [function] [call site] 00221
4 nlohmann::detail::lexer_base::token_type_name [function] [call site] 00223
3 BasicJsonType [function] [call site] 00224
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00225
3 get_string [function] [call site] 00227
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00228
3 nlohmann::detail::parser::get_token [function] [call site] 00229
3 parse_error [function] [call site] 00230
3 get_position [function] [call site] 00231
3 get_token_string [function] [call site] 00232
3 parse_error::create [function] [call site] 00233
3 get_position [function] [call site] 00234
3 nlohmann::detail::parser::exception_message [function] [call site] 00235
3 BasicJsonType [function] [call site] 00236
3 std::vector::push_back [function] [call site] 00237
3 nlohmann::detail::parser::get_token [function] [call site] 00238
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00239
3 start_array [function] [call site] 00240
3 static_cast<std::size_t> [function] [call site] 00241
3 nlohmann::detail::parser::get_token [function] [call site] 00242
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00243
3 end_array [function] [call site] 00244
3 std::vector::push_back [function] [call site] 00245
3 get_number_float [function] [call site] 00246
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00247
3 std::isfinite [function] [call site] 00248
3 parse_error [function] [call site] 00249
3 get_position [function] [call site] 00250
3 get_token_string [function] [call site] 00251
3 out_of_range::create [function] [call site] 00252
4 nlohmann::detail::exception::name [function] [call site] 00254
4 nlohmann::detail::exception::diagnostics [function] [call site] 00255
4 std::string::c_str [function] [call site] 00256
3 get_token_string [function] [call site] 00257
3 BasicJsonType [function] [call site] 00258
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00259
3 number_float [function] [call site] 00260
3 get_string [function] [call site] 00261
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00262
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00264
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00266
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00268
3 number_integer [function] [call site] 00269
3 get_number_integer [function] [call site] 00270
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00271
3 get_string [function] [call site] 00273
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00274
3 number_unsigned [function] [call site] 00275
3 get_number_unsigned [function] [call site] 00276
3 parse_error [function] [call site] 00277
3 get_position [function] [call site] 00278
3 get_token_string [function] [call site] 00279
3 parse_error::create [function] [call site] 00280
3 get_position [function] [call site] 00281
3 nlohmann::detail::parser::exception_message [function] [call site] 00282
3 BasicJsonType [function] [call site] 00283
3 parse_error [function] [call site] 00284
3 get_position [function] [call site] 00285
3 get_token_string [function] [call site] 00286
3 parse_error::create [function] [call site] 00287
3 get_position [function] [call site] 00288
3 nlohmann::detail::parser::exception_message [function] [call site] 00289
3 BasicJsonType [function] [call site] 00290
3 std::vector::empty [function] [call site] 00291
3 std::vector::back [function] [call site] 00292
3 nlohmann::detail::parser::get_token [function] [call site] 00293
3 nlohmann::detail::parser::get_token [function] [call site] 00294
3 JSON_HEDLEY_LIKELY [function] [call site] 00295
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00296
3 end_array [function] [call site] 00297
3 JSON_ASSERT [function] [call site] 00298
3 std::vector::empty [function] [call site] 00299
3 std::vector::pop_back [function] [call site] 00300
3 parse_error [function] [call site] 00301
3 get_position [function] [call site] 00302
3 get_token_string [function] [call site] 00303
3 parse_error::create [function] [call site] 00304
3 get_position [function] [call site] 00305
3 nlohmann::detail::parser::exception_message [function] [call site] 00306
3 BasicJsonType [function] [call site] 00307
3 nlohmann::detail::parser::get_token [function] [call site] 00308
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00309
3 nlohmann::detail::parser::get_token [function] [call site] 00310
3 parse_error [function] [call site] 00311
3 get_position [function] [call site] 00312
3 get_token_string [function] [call site] 00313
3 parse_error::create [function] [call site] 00314
3 get_position [function] [call site] 00315
3 nlohmann::detail::parser::exception_message [function] [call site] 00316
3 BasicJsonType [function] [call site] 00317
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00318
3 get_string [function] [call site] 00320
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00321
3 nlohmann::detail::parser::get_token [function] [call site] 00322
3 parse_error [function] [call site] 00323
3 get_position [function] [call site] 00324
3 get_token_string [function] [call site] 00325
3 parse_error::create [function] [call site] 00326
3 get_position [function] [call site] 00327
3 nlohmann::detail::parser::exception_message [function] [call site] 00328
3 BasicJsonType [function] [call site] 00329
3 nlohmann::detail::parser::get_token [function] [call site] 00330
3 JSON_HEDLEY_LIKELY [function] [call site] 00331
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00332
3 end_object [function] [call site] 00333
3 JSON_ASSERT [function] [call site] 00334
3 std::vector::empty [function] [call site] 00335
3 std::vector::pop_back [function] [call site] 00336
3 parse_error [function] [call site] 00337
3 get_position [function] [call site] 00338
3 get_token_string [function] [call site] 00339
3 parse_error::create [function] [call site] 00340
3 get_position [function] [call site] 00341
3 nlohmann::detail::parser::exception_message [function] [call site] 00342
3 BasicJsonType [function] [call site] 00343
2 nlohmann::detail::parser::get_token [function] [call site] 00344
2 json_sax_dom_callback_parser::parse_error [function] [call site] 00345
3 static_cast<void> [function] [call site] 00346
3 JSON_THROW [function] [call site] 00347
2 get_position [function] [call site] 00348
2 get_token_string [function] [call site] 00349
2 parse_error::create [function] [call site] 00350
2 get_position [function] [call site] 00351
2 nlohmann::detail::parser::exception_message [function] [call site] 00352
2 BasicJsonType [function] [call site] 00353
2 json_sax_dom_callback_parser::is_errored [function] [call site] 00354
2 is_discarded [function] [call site] 00355
2 nlohmann::detail::parser::sax_parse_internal [function] [call site] 00356
2 nlohmann::detail::parser::get_token [function] [call site] 00357
2 json_sax_dom_parser::parse_error [function] [call site] 00358
3 static_cast<void> [function] [call site] 00359
3 JSON_THROW [function] [call site] 00360
2 get_position [function] [call site] 00361
2 get_token_string [function] [call site] 00362
2 parse_error::create [function] [call site] 00363
2 get_position [function] [call site] 00364
2 nlohmann::detail::parser::exception_message [function] [call site] 00365
2 BasicJsonType [function] [call site] 00366
2 json_sax_dom_parser::is_errored [function] [call site] 00367
2 assert_invariant [function] [call site] 00368
1 check_utf8dump [function] [call site] 00369
2 std::string::clear [function] [call site] 00370
2 CAPTURE [function] [call site] 00371
3 from_ubjson [function] [call site] 00372
4 nlohmann::detail::input_adapter [function] [call site] 00373
4 std::forward<InputType> [function] [call site] 00374
4 binary_reader<decltype(ia)> [function] [call site] 00375
4 std::move [function] [call site] 00376
4 basic_json [function] [call site] 00377
5 assert_invariant [function] [call site] 00378
3 std::vector<uint8_t> [function] [call site] 00379
3 INFO_WITH_TEMP [function] [call site] 00380
2 static_cast<char> [function] [call site] 00391
2 static_cast<char> [function] [call site] 00393
2 static_cast<char> [function] [call site] 00395
2 static_cast<char> [function] [call site] 00397
2 check_utf8dump [function] [call site] 00399
2 check_utf8dump [function] [call site] 00400
2 check_utf8dump [function] [call site] 00401
2 check_utf8dump [function] [call site] 00402
2 check_utf8dump [function] [call site] 00403
2 check_utf8dump [function] [call site] 00404
2 check_utf8dump [function] [call site] 00405
2 check_utf8dump [function] [call site] 00406
2 check_utf8dump [function] [call site] 00407
2 CHECK_THROWS_AS [function] [call site] 00410
2 check_utf8dump [function] [call site] 00411
2 std::string::find [function] [call site] 00414
2 std::string::substr [function] [call site] 00416
2 std::string::substr [function] [call site] 00418
2 std::string::size [function] [call site] 00419
2 std::string::substr [function] [call site] 00421
2 std::string::substr [function] [call site] 00423
2 std::string::size [function] [call site] 00424
2 std::string::substr [function] [call site] 00426
2 std::string::substr [function] [call site] 00428
2 std::string::size [function] [call site] 00429
2 std::string::substr [function] [call site] 00431
2 std::string::substr [function] [call site] 00433
2 std::string::size [function] [call site] 00434
1 nlohmann::detail::parser::parse [function] [call site] 00435
1 check_utf8dump [function] [call site] 00436