Fuzz introspector: json_fuzzer
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
10 51 crow::json::rvalue::s() const call site: 00051 __cxa_allocate_exception
7 7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::parse() call site: 00007 __clang_call_terminate
5 93 crow::json::rvalue::begin() const call site: 00093 __cxa_allocate_exception
5 100 crow::json::rvalue::end() const call site: 00100 __cxa_allocate_exception
5 134 crow::json::rvalue::keys() const call site: 00134 __cxa_allocate_exception
5 143 crow::json::rvalue::operator[](std::__1::basic_string , std::__1::allocator > const&) const call site: 00143 __cxa_allocate_exception
4 162 bool crow::json::detail::r_string::equals , std::__1::allocator > >(crow::json::detail::r_string const&, std::__1::basic_string , std::__1::allocator > const&) call site: 00162 __cxa_allocate_exception
2 16 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_list(unsigned int) call site: 00016 __clang_call_terminate
1 31 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() call site: 00031
1 36 crow::json::rvalue::determine_num_type() call site: 00036 __clang_call_terminate
1 172 LLVMFuzzerTestOneInput call site: 00172 __cxa_end_catch

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 crow::json::load(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00001
2 crow::json::load(char const*, unsigned long) [function] [call site] 00002
3 crow::json::load_nocopy_internal(char*, unsigned long) [function] [call site] 00003
4 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::Parser(char*, unsigned long) [function] [call site] 00004
4 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::parse() [function] [call site] 00005
5 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00006
5 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00007
6 crow::json::rvalue::rvalue() [function] [call site] 00008
7 crow::json::detail::r_string::r_string() [function] [call site] 00009
7 __clang_call_terminate [call site] 00010
8 __cxa_begin_catch [call site] 00011
6 crow::json::rvalue::set_error() [function] [call site] 00012
6 crow::json::rvalue::~rvalue() [function] [call site] 00013
7 crow::json::detail::r_string::~r_string() [function] [call site] 00014
6 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_list(unsigned int) [function] [call site] 00015
7 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00016
8 crow::json::detail::r_string::r_string() [function] [call site] 00017
8 __clang_call_terminate [call site] 00018
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00019
7 crow::json::rvalue::set_error() [function] [call site] 00020
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00021
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00022
8 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_object(unsigned int) [function] [call site] 00023
9 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00024
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00025
9 crow::json::rvalue::set_error() [function] [call site] 00026
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00027
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() [function] [call site] 00028
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00029
10 crow::json::rvalue::rvalue() [function] [call site] 00030
10 crow::json::rvalue::rvalue(crow::json::type, char*, char*) [function] [call site] 00031
11 crow::json::detail::r_string::r_string() [function] [call site] 00032
11 crow::json::rvalue::determine_num_type() [function] [call site] 00033
12 memchr [call site] 00034
12 memchr [call site] 00035
12 memchr [call site] 00036
11 __clang_call_terminate [call site] 00037
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00038
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00039
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00040
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00041
10 crow::json::rvalue::rvalue() [function] [call site] 00042
10 crow::json::rvalue::rvalue() [function] [call site] 00043
10 crow::json::rvalue::rvalue() [function] [call site] 00044
9 crow::json::rvalue::operator bool() const [function] [call site] 00045
9 crow::json::rvalue::set_error() [function] [call site] 00046
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00047
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00048
9 crow::json::rvalue::set_error() [function] [call site] 00049
9 crow::json::rvalue::s() const [function] [call site] 00050
10 crow::json::rvalue::t() const [function] [call site] 00051
11 __cxa_allocate_exception [call site] 00052
11 std::runtime_error::runtime_error(char const*) [call site] 00053
11 __cxa_throw [call site] 00054
11 std::runtime_error::~runtime_error() [call site] 00055
11 __cxa_free_exception [call site] 00056
10 __cxa_allocate_exception [call site] 00057
10 std::runtime_error::runtime_error(char const*) [call site] 00058
10 __cxa_throw [call site] 00059
10 std::runtime_error::~runtime_error() [call site] 00060
10 __cxa_free_exception [call site] 00061
10 crow::json::rvalue::unescape() const [function] [call site] 00062
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00063
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00064
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00065
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00066
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00067
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00068
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00069
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00070
10 crow::json::detail::r_string::r_string(char*, char*) [function] [call site] 00071
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00072
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00073
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() [function] [call site] 00074
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00075
10 crow::json::rvalue::rvalue() [function] [call site] 00076
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00077
10 crow::json::rvalue::rvalue() [function] [call site] 00078
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00079
10 crow::json::rvalue::rvalue() [function] [call site] 00080
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_number() [function] [call site] 00081
11 crow::json::rvalue::rvalue(crow::json::type, char*, char*) [function] [call site] 00082
11 crow::json::rvalue::rvalue() [function] [call site] 00083
11 crow::json::rvalue::rvalue() [function] [call site] 00084
9 crow::json::rvalue::operator bool() const [function] [call site] 00085
9 crow::json::rvalue::set_error() [function] [call site] 00086
9 crow::json::rvalue::~rvalue() [function] [call site] 00087
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00088
9 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00089
9 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00090
10 crow::json::rvalue::rvalue() [function] [call site] 00091
10 crow::json::rvalue::begin() const [function] [call site] 00092
11 crow::json::rvalue::t() const [function] [call site] 00093
11 __cxa_allocate_exception [call site] 00094
11 std::runtime_error::runtime_error(char const*) [call site] 00095
11 __cxa_throw [call site] 00096
11 std::runtime_error::~runtime_error() [call site] 00097
11 __cxa_free_exception [call site] 00098
10 crow::json::rvalue::end() const [function] [call site] 00099
11 crow::json::rvalue::t() const [function] [call site] 00100
11 __cxa_allocate_exception [call site] 00101
11 std::runtime_error::runtime_error(char const*) [call site] 00102
11 __cxa_throw [call site] 00103
11 std::runtime_error::~runtime_error() [call site] 00104
11 __cxa_free_exception [call site] 00105
10 crow::json::rvalue::operator=(crow::json::rvalue&&) [function] [call site] 00106
11 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00107
11 __clang_call_terminate [call site] 00108
10 crow::json::rvalue::operator=(crow::json::rvalue&&) [function] [call site] 00109
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00110
9 crow::json::rvalue::set_error() [function] [call site] 00111
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00112
9 crow::json::detail::r_string::~r_string() [function] [call site] 00113
9 crow::json::rvalue::~rvalue() [function] [call site] 00114
7 crow::json::rvalue::operator bool() const [function] [call site] 00115
7 crow::json::rvalue::set_error() [function] [call site] 00116
7 crow::json::rvalue::~rvalue() [function] [call site] 00117
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00118
7 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00119
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00120
7 crow::json::rvalue::set_error() [function] [call site] 00121
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00122
7 crow::json::rvalue::~rvalue() [function] [call site] 00123
5 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00124
5 crow::json::rvalue::operator bool() const [function] [call site] 00125
5 crow::json::rvalue::set_error() [function] [call site] 00126
5 crow::json::rvalue::~rvalue() [function] [call site] 00127
3 crow::json::rvalue::operator bool() const [function] [call site] 00128
3 crow::json::detail::r_string::force(char*, unsigned long) [function] [call site] 00129
3 crow::json::rvalue::~rvalue() [function] [call site] 00130
1 crow::json::rvalue::operator bool() const [function] [call site] 00131
1 crow::json::rvalue::t() const [function] [call site] 00132
1 crow::json::rvalue::keys() const [function] [call site] 00133
2 crow::json::rvalue::t() const [function] [call site] 00134
2 __cxa_allocate_exception [call site] 00135
2 std::runtime_error::runtime_error(char const*) [call site] 00136
2 __cxa_throw [call site] 00137
2 std::runtime_error::~runtime_error() [call site] 00138
2 __cxa_free_exception [call site] 00139
2 crow::json::rvalue::key() const [function] [call site] 00140
2 crow::json::detail::r_string::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >() const [function] [call site] 00141
1 crow::json::rvalue::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const [function] [call site] 00142
2 crow::json::rvalue::t() const [function] [call site] 00143
2 __cxa_allocate_exception [call site] 00144
2 std::runtime_error::runtime_error(char const*) [call site] 00145
2 __cxa_throw [call site] 00146
2 std::runtime_error::~runtime_error() [call site] 00147
2 __cxa_free_exception [call site] 00148
2 crow::json::rvalue::is_cached() const [function] [call site] 00149
2 crow::json::rvalue::begin() const [function] [call site] 00150
2 crow::json::rvalue::end() const [function] [call site] 00151
2 crow::json::rvalue::set_cached() const [function] [call site] 00152
2 crow::json::rvalue::begin() const [function] [call site] 00153
2 crow::json::rvalue::end() const [function] [call site] 00154
2 crow::json::rvalue::end() const [function] [call site] 00155
2 crow::json::detail::operator==(crow::json::detail::r_string const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00156
3 bool crow::json::detail::r_string::equals<crow::json::detail::r_string, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(crow::json::detail::r_string const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00157
4 crow::json::detail::r_string::size() const [function] [call site] 00158
5 crow::json::detail::r_string::end() const [function] [call site] 00159
5 crow::json::detail::r_string::begin() const [function] [call site] 00160
4 crow::json::detail::r_string::size() const [function] [call site] 00161
4 crow::json::detail::r_string::begin() const [function] [call site] 00162
2 __cxa_allocate_exception [call site] 00163
2 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00164
2 __cxa_throw [call site] 00165
2 __cxa_free_exception [call site] 00166
1 crow::json::rvalue::t() const [function] [call site] 00167
1 crow::json::rvalue::begin() const [function] [call site] 00168
1 crow::json::rvalue::end() const [function] [call site] 00169
1 crow::json::rvalue::t() const [function] [call site] 00170
1 crow::json::rvalue::~rvalue() [function] [call site] 00171
1 __cxa_begin_catch [call site] 00172
1 __cxa_end_catch [call site] 00173