Fuzz introspector: fuzzing/script_fuzzer.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
556 0 EP call site: 00000 BT::ParseScriptAndExecute

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 BT::Blackboard::create [function] [call site] 00001
2 std::shared_ptr<Blackboard> [function] [call site] 00002
2 BT::Blackboard::Blackboard [function] [call site] 00003
1 std::make_shared<BT::EnumsTable> [function] [call site] 00004
1 FuzzedDataProvider::ConsumeRandomLengthString [function] [call site] 00014
1 BT::ValidateScript [function] [call site] 00015
2 BT::Scripting::parseStatements [function] [call site] 00016
3 BT::Scripting::tokenize [function] [call site] 00017
4 push_back [function] [call site] 00022
4 BT::Scripting::isDigit [function] [call site] 00023
5 std::isdigit [function] [call site] 00024
5 static_cast<unsigned [call site] 00025
4 BT::Scripting::scanHexNumber [function] [call site] 00026
5 BT::Scripting::isHexDigit [function] [call site] 00027
6 std::isxdigit [function] [call site] 00028
6 static_cast<unsigned [call site] 00029
5 BT::Scripting::isHexDigit [function] [call site] 00030
5 BT::Scripting::isIdentChar [function] [call site] 00031
6 std::isalnum [function] [call site] 00032
6 static_cast<unsigned [call site] 00033
5 BT::Scripting::consumeTrailingGarbage [function] [call site] 00034
6 BT::Scripting::isIdentChar [function] [call site] 00035
4 BT::Scripting::scanDecimalNumber [function] [call site] 00036
5 BT::Scripting::isDigit [function] [call site] 00037
5 BT::Scripting::isDigit [function] [call site] 00038
5 BT::Scripting::isDigit [function] [call site] 00039
5 BT::Scripting::consumeTrailingGarbage [function] [call site] 00040
5 BT::Scripting::isDigit [function] [call site] 00041
5 BT::Scripting::isDigit [function] [call site] 00042
5 BT::Scripting::isIdentStart [function] [call site] 00043
6 std::isalpha [function] [call site] 00044
6 static_cast<unsigned [call site] 00045
5 BT::Scripting::isIdentChar [function] [call site] 00046
4 push_back [function] [call site] 00047
4 push_back [function] [call site] 00048
4 push_back [function] [call site] 00049
4 BT::Scripting::isIdentStart [function] [call site] 00050
4 BT::Scripting::isIdentChar [function] [call site] 00051
4 push_back [function] [call site] 00052
4 push_back [function] [call site] 00053
4 BT::Scripting::matchTwoCharOp [function] [call site] 00054
4 push_back [function] [call site] 00055
4 push_back [function] [call site] 00056
4 BT::Scripting::matchSingleCharOp [function] [call site] 00057
4 push_back [function] [call site] 00058
3 BT::Scripting::ScriptParser::parseAll [function] [call site] 00059
4 BT::Scripting::ScriptParser::atEnd [function] [call site] 00060
4 push_back [function] [call site] 00062
4 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00063
5 BT::Scripting::ScriptParser::parsePrefix [function] [call site] 00064
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00067
6 std::make_shared<Ast::ExprUnaryArithmetic> [function] [call site] 00068
6 std::move [function] [call site] 00069
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00071
6 std::make_shared<Ast::ExprUnaryArithmetic> [function] [call site] 00072
6 std::move [function] [call site] 00073
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00075
6 std::make_shared<Ast::ExprUnaryArithmetic> [function] [call site] 00076
6 std::move [function] [call site] 00077
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00079
6 std::make_shared<Ast::ExprLiteral> [function] [call site] 00082
6 std::from_chars [function] [call site] 00088
6 std::from_chars [function] [call site] 00089
6 std::make_shared<Ast::ExprLiteral> [function] [call site] 00090
6 convertFromString<double> [function] [call site] 00093
6 std::make_shared<Ast::ExprLiteral> [function] [call site] 00094
6 std::make_shared<Ast::ExprLiteral> [function] [call site] 00097
6 std::make_shared<Ast::ExprName> [function] [call site] 00101
6 RuntimeError [function] [call site] 00103
6 to_string [function] [call site] 00105
7 std::accumulate [function] [call site] 00106
7 begin [function] [call site] 00107
8 primitive_iterator_t::set_begin [function] [call site] 00108
7 end [function] [call site] 00109
8 set_end [function] [call site] 00110
9 JSON_ASSERT [function] [call site] 00111
9 json_reverse_iterator::json_reverse_iterator [function] [call site] 00112
9 json_reverse_iterator::json_reverse_iterator [function] [call site] 00113
9 primitive_iterator_t [function] [call site] 00114
9 set_begin [function] [call site] 00115
9 JSON_ASSERT [function] [call site] 00116
9 begin [function] [call site] 00117
10 primitive_iterator_t::set_begin [function] [call site] 00118
9 begin [function] [call site] 00119
10 primitive_iterator_t::set_begin [function] [call site] 00120
9 set_end [function] [call site] 00121
10 JSON_ASSERT [function] [call site] 00122
10 json_reverse_iterator::json_reverse_iterator [function] [call site] 00123
10 json_reverse_iterator::json_reverse_iterator [function] [call site] 00124
10 primitive_iterator_t [function] [call site] 00125
10 set_begin [function] [call site] 00126
10 JSON_ASSERT [function] [call site] 00127
10 primitive_iterator_t::set_begin [function] [call site] 00131
10 JSON_ASSERT [function] [call site] 00132
9 primitive_iterator_t::set_begin [function] [call site] 00138
9 JSON_ASSERT [function] [call site] 00139
7 concat [function] [call site] 00143
8 OutStringType::reserve [function] [call site] 00144
8 concat_length [function] [call site] 00145
8 concat_into [function] [call site] 00146
8 std::forward<Args> [function] [call site] 00147
6 RuntimeError [function] [call site] 00166
6 to_string [function] [call site] 00168
5 BT::Scripting::ScriptParser::leftBP [function] [call site] 00170
5 BT::Scripting::ScriptParser::isAssignment [function] [call site] 00171
5 BT::Scripting::ScriptParser::parseAssignment [function] [call site] 00172
6 RuntimeError [function] [call site] 00174
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00175
6 std::make_shared<Ast::ExprAssignment> [function] [call site] 00176
6 std::move [function] [call site] 00177
6 std::move [function] [call site] 00178
5 std::move [function] [call site] 00179
5 BT::Scripting::ScriptParser::parseTernary [function] [call site] 00180
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00182
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00184
6 std::make_shared<Ast::ExprIf> [function] [call site] 00185
6 std::move [function] [call site] 00186
6 std::move [function] [call site] 00187
6 std::move [function] [call site] 00188
5 std::move [function] [call site] 00189
5 BT::Scripting::ScriptParser::isComparison [function] [call site] 00190
5 BT::Scripting::ScriptParser::parseChainedComparison [function] [call site] 00191
6 std::make_shared<Ast::ExprComparison> [function] [call site] 00192
6 std::move [function] [call site] 00195
6 BT::Scripting::ScriptParser::isComparison [function] [call site] 00196
6 BT::Scripting::ScriptParser::mapComparisonOp [function] [call site] 00200
7 RuntimeError [function] [call site] 00201
6 push_back [function] [call site] 00203
6 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00204
5 std::move [function] [call site] 00205
5 BT::Scripting::ScriptParser::parseExpr [function] [call site] 00207
5 BT::Scripting::ScriptParser::makeBinary [function] [call site] 00208
6 RuntimeError [function] [call site] 00209
6 std::make_shared<Ast::ExprBinaryArithmetic> [function] [call site] 00210
6 std::move [function] [call site] 00211
6 std::move [function] [call site] 00212
5 std::move [function] [call site] 00213
5 std::move [function] [call site] 00214
4 BT::Scripting::ScriptParser::check [function] [call site] 00215
2 nonstd::make_unexpected [function] [call site] 00220
3 unexpected< [call site] 00221
3 std::forward<E> [function] [call site] 00222
2 nonstd::make_unexpected [function] [call site] 00223
1 BT::ParseScript [function] [call site] 00225
2 BT::Scripting::parseStatements [function] [call site] 00226
2 nonstd::make_unexpected [function] [call site] 00228
2 std::move [function] [call site] 00229
2 back [function] [call site] 00232
3 JSON_HEDLEY_UNLIKELY [function] [call site] 00233
3 JSON_THROW [function] [call site] 00235
3 out_of_range::create [function] [call site] 00236
4 exception::name [function] [call site] 00238
4 exception::diagnostics [function] [call site] 00241
4 std::string::c_str [function] [call site] 00242
3 back [function] [call site] 00243
4 JSON_HEDLEY_UNLIKELY [function] [call site] 00244
4 JSON_THROW [function] [call site] 00246
4 out_of_range::create [function] [call site] 00247
2 RuntimeError [function] [call site] 00249
2 nonstd::make_unexpected [function] [call site] 00253
1 BT::PolymorphicCastRegistry::canUpcast [function] [call site] 00263
2 BT::PolymorphicCastRegistry::canUpcastTransitive [function] [call site] 00264
3 push_back [function] [call site] 00265
3 back [function] [call site] 00268
4 JSON_HEDLEY_UNLIKELY [function] [call site] 00269
4 JSON_THROW [function] [call site] 00271
4 out_of_range::create [function] [call site] 00272
3 pop_back [function] [call site] 00274
4 JSON_HEDLEY_UNLIKELY [function] [call site] 00275
4 JSON_THROW [function] [call site] 00277
4 out_of_range::create [function] [call site] 00278
4 pop_back [function] [call site] 00279
5 JSON_HEDLEY_UNLIKELY [function] [call site] 00280
5 JSON_THROW [function] [call site] 00282
5 out_of_range::create [function] [call site] 00283
3 insert [function] [call site] 00289
4 emplace [function] [call site] 00290
5 m_compare [function] [call site] 00293
5 emplace_back [function] [call site] 00294
6 JSON_HEDLEY_UNLIKELY [function] [call site] 00295
6 JSON_THROW [function] [call site] 00298
6 type_error::create [function] [call site] 00299
7 exception::name [function] [call site] 00301
7 exception::diagnostics [function] [call site] 00302
7 std::string::c_str [function] [call site] 00303
6 type_name [function] [call site] 00305
6 assert_invariant [function] [call site] 00307
6 m_value::array::capacity [function] [call site] 00308
6 emplace_back [function] [call site] 00309
7 JSON_HEDLEY_UNLIKELY [function] [call site] 00310
7 JSON_THROW [function] [call site] 00313
7 type_error::create [function] [call site] 00314
7 type_name [function] [call site] 00316
7 assert_invariant [function] [call site] 00318
7 m_value::array::capacity [function] [call site] 00319
7 emplace_back [function] [call site] 00320
7 std::forward<Args> [function] [call site] 00321
7 set_parent [function] [call site] 00322
8 static_cast<std::size_t> [function] [call site] 00323
8 static_cast<std::size_t> [function] [call site] 00324
8 JSON_ASSERT [function] [call site] 00325
8 JSON_HEDLEY_UNLIKELY [function] [call site] 00327
8 m_value::array::capacity [function] [call site] 00328
8 set_parents [function] [call site] 00329
8 set_parents [function] [call site] 00330
8 static_cast<void> [function] [call site] 00331
8 static_cast<void> [function] [call site] 00332
7 back [function] [call site] 00333
8 JSON_HEDLEY_UNLIKELY [function] [call site] 00334
8 JSON_THROW [function] [call site] 00336
8 out_of_range::create [function] [call site] 00337
6 std::forward<Args> [function] [call site] 00339
6 set_parent [function] [call site] 00340
5 std::forward<T> [function] [call site] 00342
5 std::prev [function] [call site] 00343
4 std::move [function] [call site] 00345
3 push_back [function] [call site] 00348
1 BT::Any::Any [function] [call site] 00350
1 BT::Blackboard::get [function] [call site] 00351
2 BT::Blackboard::getAnyLocked [function] [call site] 00352
3 BT::Blackboard::getEntry [function] [call site] 00353
4 StartWith [function] [call site] 00354
4 rootBlackboard [function] [call site] 00355
4 cend [function] [call site] 00362
5 set_end [function] [call site] 00363
6 JSON_ASSERT [function] [call site] 00364
6 json_reverse_iterator::json_reverse_iterator [function] [call site] 00365
6 json_reverse_iterator::json_reverse_iterator [function] [call site] 00366
6 primitive_iterator_t [function] [call site] 00367
6 set_begin [function] [call site] 00368
6 JSON_ASSERT [function] [call site] 00369
6 primitive_iterator_t::set_begin [function] [call site] 00373
6 JSON_ASSERT [function] [call site] 00374
4 BT::Blackboard::getEntry [function] [call site] 00378
4 IsPrivateKey [function] [call site] 00391
4 BT::Blackboard::getEntry [function] [call site] 00392
3 AnyPtrLocked [function] [call site] 00393
2 BT::Blackboard::get [function] [call site] 00394
3 BT::Blackboard::getAnyLocked [function] [call site] 00395
3 BT::Blackboard::get [function] [call site] 00396
3 RuntimeError [function] [call site] 00398
3 BT::Blackboard::tryCastWithPolymorphicFallback [function] [call site] 00399
4 BT::PolymorphicCastRegistry::tryCast [function] [call site] 00400
5 std::make_pair [function] [call site] 00401
5 auto::second [function] [call site] 00404
5 nonstd::make_unexpected [function] [call site] 00405
5 BT::PolymorphicCastRegistry::applyTransitiveCasts [function] [call site] 00408
6 push_back [function] [call site] 00409
6 push_back [function] [call site] 00426
6 push_back [function] [call site] 00433
6 std::reverse [function] [call site] 00434
6 begin [function] [call site] 00435
7 primitive_iterator_t::set_begin [function] [call site] 00436
6 std::make_pair [function] [call site] 00440
6 nonstd::make_unexpected [function] [call site] 00443
6 auto::second [function] [call site] 00445
6 nonstd::make_unexpected [function] [call site] 00446
6 push_back [function] [call site] 00449
6 nonstd::make_unexpected [function] [call site] 00450
5 std::make_pair [function] [call site] 00452
5 auto::second [function] [call site] 00455
5 nonstd::make_unexpected [function] [call site] 00456
5 BT::PolymorphicCastRegistry::applyTransitiveCasts [function] [call site] 00459
5 nonstd::make_unexpected [function] [call site] 00460
4 BT::Any::tryCastWithRegistry [function] [call site] 00463
5 BT::Any::empty [function] [call site] 00464
6 BT::Any::empty [function] [call site] 00465
5 nonstd::make_unexpected [function] [call site] 00466
5 BT::Any::tryCast [function] [call site] 00467
6 BT::Any::empty [function] [call site] 00468
6 std::runtime_error [function] [call site] 00469
6 castedType [function] [call site] 00470
6 linb::any_cast<T> [function] [call site] 00472
6 static_cast<T> [function] [call site] 00480
6 BT::Any::convert [function] [call site] 00481
7 nonstd::make_unexpected [function] [call site] 00482
6 BT::Any::stringToNumber [function] [call site] 00492
7 linb::any_cast<SafeAny::SimpleString> [function] [call site] 00493
7 std::from_chars [function] [call site] 00494
7 std::errc [function] [call site] 00498
7 nonstd::make_unexpected [function] [call site] 00499
7 std::stoul [function] [call site] 00500
7 SafeAny::SimpleString::toStdString [function] [call site] 00501
8 SafeAny::SimpleString::size [function] [call site] 00502
9 SafeAny::SimpleString::isSOO [function] [call site] 00503
8 SafeAny::SimpleString::data [function] [call site] 00505
9 SafeAny::SimpleString::isSOO [function] [call site] 00506
8 SafeAny::SimpleString::size [function] [call site] 00507
7 std::stol [function] [call site] 00509
7 SafeAny::SimpleString::toStdString [function] [call site] 00510
7 std::stod [function] [call site] 00512
7 SafeAny::SimpleString::toStdString [function] [call site] 00513
7 nonstd::make_unexpected [function] [call site] 00514
7 nonstd::make_unexpected [function] [call site] 00515
6 static_cast<T> [function] [call site] 00516
6 nonstd::make_unexpected [function] [call site] 00518
6 BT::Any::isString [function] [call site] 00519
6 BT::Any::stringToNumber [function] [call site] 00520
6 BT::Any::convert [function] [call site] 00522
5 linb::any_cast<T> [function] [call site] 00525
5 nonstd::make_unexpected [function] [call site] 00527
5 nonstd::make_unexpected [function] [call site] 00530
5 parse_error::parse_error [function] [call site] 00532
4 nonstd::make_unexpected [function] [call site] 00537
4 parse_error::parse_error [function] [call site] 00538
3 std::runtime_error [function] [call site] 00539
3 parse_error::parse_error [function] [call site] 00540
3 RuntimeError [function] [call site] 00542
2 RuntimeError [function] [call site] 00544
2 BT::Blackboard::tryCastWithPolymorphicFallback [function] [call site] 00545
2 std::runtime_error [function] [call site] 00546
2 parse_error::parse_error [function] [call site] 00547
2 RuntimeError [function] [call site] 00549
1 BT::ParseScriptAndExecute [function] [call site] 00550
2 BT::ParseScript [function] [call site] 00551
2 nonstd::make_unexpected [function] [call site] 00553
2 nonstd::make_unexpected [function] [call site] 00555
2 parse_error::parse_error [function] [call site] 00556