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 43 crow::json::rvalue::s() const call site: 00043 __cxa_allocate_exception
6 167 crow::json::rvalue::i() const call site: 00167 __cxa_allocate_exception
6 205 crow::json::rvalue::u() const call site: 00205 __cxa_allocate_exception
5 86 crow::json::rvalue::begin() const call site: 00086 __cxa_allocate_exception
5 93 crow::json::rvalue::end() const call site: 00093 __cxa_allocate_exception
5 125 crow::json::rvalue::keys() const call site: 00125 __cxa_allocate_exception
5 134 crow::json::rvalue::operator[](std::__1::basic_string , std::__1::allocator > const&) const call site: 00134 __cxa_allocate_exception
5 175 crow::json::rvalue::d() const call site: 00175 __cxa_allocate_exception
5 183 crow::json::rvalue::b() const call site: 00183 __cxa_allocate_exception
5 195 crow::json::wvalue::wvalue(crow::json::rvalue const&) call site: 00195 __cxa_allocate_exception
5 220 crow::json::rvalue::size() const call site: 00220 __cxa_allocate_exception
4 153 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: 00153 __cxa_allocate_exception

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
6 crow::json::rvalue::set_error() [function] [call site] 00010
6 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_list(unsigned int) [function] [call site] 00011
7 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00012
8 crow::json::detail::r_string::r_string() [function] [call site] 00013
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00014
7 crow::json::rvalue::set_error() [function] [call site] 00015
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00016
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00017
8 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_object(unsigned int) [function] [call site] 00018
9 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00019
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00020
9 crow::json::rvalue::set_error() [function] [call site] 00021
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00022
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() [function] [call site] 00023
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00024
10 crow::json::rvalue::rvalue() [function] [call site] 00025
10 crow::json::rvalue::rvalue(crow::json::type, char*, char*) [function] [call site] 00026
11 crow::json::detail::r_string::r_string() [function] [call site] 00027
11 crow::json::rvalue::determine_num_type() [function] [call site] 00028
12 memchr [call site] 00029
12 memchr [call site] 00030
12 memchr [call site] 00031
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00032
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00033
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00034
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string()::{lambda(char)#1}::operator()(char) const [function] [call site] 00035
10 crow::json::rvalue::rvalue() [function] [call site] 00036
10 crow::json::rvalue::rvalue() [function] [call site] 00037
10 crow::json::rvalue::rvalue() [function] [call site] 00038
9 crow::json::rvalue::operator bool() const [function] [call site] 00039
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00040
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00041
9 crow::json::rvalue::s() const [function] [call site] 00042
10 crow::json::rvalue::t() const [function] [call site] 00043
11 __cxa_allocate_exception [call site] 00044
11 std::runtime_error::runtime_error(char const*) [call site] 00045
11 __cxa_throw [call site] 00046
11 std::runtime_error::~runtime_error() [call site] 00047
11 __cxa_free_exception [call site] 00048
10 __cxa_allocate_exception [call site] 00049
10 std::runtime_error::runtime_error(char const*) [call site] 00050
10 __cxa_throw [call site] 00051
10 std::runtime_error::~runtime_error() [call site] 00052
10 __cxa_free_exception [call site] 00053
10 crow::json::rvalue::unescape() const [function] [call site] 00054
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00055
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00056
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00057
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00058
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00059
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00060
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00061
11 crow::json::rvalue::unescape() const::{lambda(char)#1}::operator()(char) const [function] [call site] 00062
10 crow::json::detail::r_string::r_string(char*, char*) [function] [call site] 00063
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00064
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00065
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() [function] [call site] 00066
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00067
10 crow::json::rvalue::rvalue() [function] [call site] 00068
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00069
10 crow::json::rvalue::rvalue() [function] [call site] 00070
10 crow::json::rvalue::rvalue(crow::json::type) [function] [call site] 00071
10 crow::json::rvalue::rvalue() [function] [call site] 00072
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_number() [function] [call site] 00073
11 crow::json::rvalue::rvalue(crow::json::type, char*, char*) [function] [call site] 00074
11 crow::json::rvalue::rvalue() [function] [call site] 00075
11 crow::json::rvalue::rvalue() [function] [call site] 00076
9 crow::json::rvalue::operator bool() const [function] [call site] 00077
9 crow::json::rvalue::set_error() [function] [call site] 00078
9 crow::json::rvalue::~rvalue() [function] [call site] 00079
10 crow::json::detail::r_string::~r_string() [function] [call site] 00080
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00081
9 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00082
9 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00083
10 crow::json::rvalue::rvalue() [function] [call site] 00084
10 crow::json::rvalue::begin() const [function] [call site] 00085
11 crow::json::rvalue::t() const [function] [call site] 00086
11 __cxa_allocate_exception [call site] 00087
11 std::runtime_error::runtime_error(char const*) [call site] 00088
11 __cxa_throw [call site] 00089
11 std::runtime_error::~runtime_error() [call site] 00090
11 __cxa_free_exception [call site] 00091
10 crow::json::rvalue::end() 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::operator=(crow::json::rvalue&&) [function] [call site] 00099
11 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00100
10 crow::json::rvalue::operator=(crow::json::rvalue&&) [function] [call site] 00101
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00102
9 crow::json::rvalue::set_error() [function] [call site] 00103
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00104
9 crow::json::rvalue::set_error() [function] [call site] 00105
9 crow::json::detail::r_string::~r_string() [function] [call site] 00106
9 crow::json::rvalue::~rvalue() [function] [call site] 00107
7 crow::json::rvalue::operator bool() const [function] [call site] 00108
7 crow::json::rvalue::set_error() [function] [call site] 00109
7 crow::json::rvalue::~rvalue() [function] [call site] 00110
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00111
7 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00112
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00113
7 crow::json::rvalue::set_error() [function] [call site] 00114
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00115
7 crow::json::rvalue::~rvalue() [function] [call site] 00116
5 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00117
5 crow::json::rvalue::operator bool() const [function] [call site] 00118
5 crow::json::rvalue::set_error() [function] [call site] 00119
3 crow::json::rvalue::operator bool() const [function] [call site] 00120
3 crow::json::detail::r_string::force(char*, unsigned long) [function] [call site] 00121
1 crow::json::rvalue::operator bool() const [function] [call site] 00122
1 crow::json::rvalue::t() const [function] [call site] 00123
1 crow::json::rvalue::keys() const [function] [call site] 00124
2 crow::json::rvalue::t() const [function] [call site] 00125
2 __cxa_allocate_exception [call site] 00126
2 std::runtime_error::runtime_error(char const*) [call site] 00127
2 __cxa_throw [call site] 00128
2 std::runtime_error::~runtime_error() [call site] 00129
2 __cxa_free_exception [call site] 00130
2 crow::json::rvalue::key() const [function] [call site] 00131
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] 00132
1 crow::json::rvalue::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) 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::is_cached() const [function] [call site] 00140
2 crow::json::rvalue::begin() const [function] [call site] 00141
2 crow::json::rvalue::end() const [function] [call site] 00142
2 crow::json::rvalue::set_cached() const [function] [call site] 00143
2 crow::json::rvalue::begin() const [function] [call site] 00144
2 crow::json::rvalue::end() const [function] [call site] 00145
2 crow::json::rvalue::end() const [function] [call site] 00146
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] 00147
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] 00148
4 crow::json::detail::r_string::size() const [function] [call site] 00149
5 crow::json::detail::r_string::end() const [function] [call site] 00150
5 crow::json::detail::r_string::begin() const [function] [call site] 00151
4 crow::json::detail::r_string::size() const [function] [call site] 00152
4 crow::json::detail::r_string::begin() const [function] [call site] 00153
2 __cxa_allocate_exception [call site] 00154
2 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00155
2 __cxa_throw [call site] 00156
2 __cxa_free_exception [call site] 00157
1 crow::json::rvalue::t() const [function] [call site] 00158
1 crow::json::rvalue::begin() const [function] [call site] 00159
1 crow::json::rvalue::end() const [function] [call site] 00160
1 crow::json::rvalue::t() const [function] [call site] 00161
1 crow::json::rvalue::s() const [function] [call site] 00162
1 crow::json::detail::r_string::size() const [function] [call site] 00163
1 crow::json::detail::r_string::~r_string() [function] [call site] 00164
1 crow::json::rvalue::i() const [function] [call site] 00165
2 crow::json::rvalue::t() const [function] [call site] 00166
2 long crow::utility::lexical_cast<long>(char const*, unsigned long) [function] [call site] 00167
2 crow::json::rvalue::t() const [function] [call site] 00168
2 crow::json::get_type_str(crow::json::type) [function] [call site] 00169
2 __cxa_allocate_exception [call site] 00170
2 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00171
2 __cxa_throw [call site] 00172
2 __cxa_free_exception [call site] 00173
1 crow::json::rvalue::d() const [function] [call site] 00174
2 crow::json::rvalue::t() const [function] [call site] 00175
2 __cxa_allocate_exception [call site] 00176
2 std::runtime_error::runtime_error(char const*) [call site] 00177
2 __cxa_throw [call site] 00178
2 std::runtime_error::~runtime_error() [call site] 00179
2 __cxa_free_exception [call site] 00180
2 double crow::utility::lexical_cast<double>(char const*, unsigned long) [function] [call site] 00181
1 crow::json::rvalue::b() const [function] [call site] 00182
2 crow::json::rvalue::t() const [function] [call site] 00183
2 __cxa_allocate_exception [call site] 00184
2 std::runtime_error::runtime_error(char const*) [call site] 00185
2 __cxa_throw [call site] 00186
2 std::runtime_error::~runtime_error() [call site] 00187
2 __cxa_free_exception [call site] 00188
2 crow::json::rvalue::t() const [function] [call site] 00189
1 crow::json::wvalue::wvalue(crow::json::rvalue const&) [function] [call site] 00190
2 crow::returnable::returnable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00191
2 crow::json::wvalue::number::number() [function] [call site] 00192
2 crow::json::rvalue::t() const [function] [call site] 00193
2 crow::json::rvalue::t() const [function] [call site] 00194
2 crow::json::rvalue::nt() const [function] [call site] 00195
3 __cxa_allocate_exception [call site] 00196
3 std::runtime_error::runtime_error(char const*) [call site] 00197
3 __cxa_throw [call site] 00198
3 std::runtime_error::~runtime_error() [call site] 00199
3 __cxa_free_exception [call site] 00200
2 crow::json::rvalue::d() const [function] [call site] 00201
2 crow::json::rvalue::i() const [function] [call site] 00202
2 crow::json::rvalue::u() const [function] [call site] 00203
3 crow::json::rvalue::t() const [function] [call site] 00204
3 unsigned long crow::utility::lexical_cast<unsigned long>(char const*, unsigned long) [function] [call site] 00205
3 __cxa_allocate_exception [call site] 00206
3 crow::json::rvalue::t() const [function] [call site] 00207
3 crow::json::get_type_str(crow::json::type) [function] [call site] 00208
3 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00209
3 __cxa_throw [call site] 00210
3 __cxa_free_exception [call site] 00211
2 crow::json::rvalue::s() const [function] [call site] 00212
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] 00213
2 crow::json::detail::r_string::~r_string() [function] [call site] 00214
2 crow::json::rvalue::size() const [function] [call site] 00215
3 crow::json::rvalue::t() const [function] [call site] 00216
3 crow::json::rvalue::s() const [function] [call site] 00217
3 crow::json::detail::r_string::size() const [function] [call site] 00218
3 crow::json::detail::r_string::~r_string() [function] [call site] 00219
3 crow::json::rvalue::t() const [function] [call site] 00220
3 __cxa_allocate_exception [call site] 00221
3 std::runtime_error::runtime_error(char const*) [call site] 00222
3 __cxa_throw [call site] 00223
3 std::runtime_error::~runtime_error() [call site] 00224
3 __cxa_free_exception [call site] 00225
2 crow::json::rvalue::begin() const [function] [call site] 00226
2 crow::json::rvalue::end() const [function] [call site] 00227
2 crow::json::rvalue::begin() const [function] [call site] 00228
2 crow::json::rvalue::end() const [function] [call site] 00229
2 crow::json::rvalue::key() const [function] [call site] 00230
2 crow::returnable::~returnable() [function] [call site] 00231
1 crow::json::wvalue::dump() const [function] [call site] 00232
2 crow::json::wvalue::dump(unsigned long, char) const [function] [call site] 00233
3 crow::json::wvalue::estimate_length() const [function] [call site] 00234
4 crow::json::wvalue::estimate_length() const [function] [call site] 00235
5 crow::json::wvalue::estimate_length() const [function] [call site] 00236
3 crow::json::wvalue::dump_internal(crow::json::wvalue const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00237
4 crow::logger::get_current_log_level() [function] [call site] 00238
5 crow::logger::get_log_level_ref() [function] [call site] 00239
4 crow::logger::logger(crow::LogLevel) [function] [call site] 00240
4 crow::logger& crow::logger::operator<< <char [30]>(char const (&) [30]) [function] [call site] 00241
5 crow::logger::get_current_log_level() [function] [call site] 00242
4 crow::logger& crow::logger::operator<< <double>(double const&) [function] [call site] 00243
4 crow::logger& crow::logger::operator<< <char [21]>(char const (&) [21]) [function] [call site] 00244
4 crow::logger::~logger() [function] [call site] 00245
5 crow::logger::get_current_log_level() [function] [call site] 00246
5 crow::logger::get_handler_ref() [function] [call site] 00247
6 __cxa_guard_acquire [call site] 00248
6 __cxa_guard_release [call site] 00249
5 __clang_call_terminate [call site] 00250
6 __cxa_begin_catch [call site] 00251
4 snprintf [call site] 00252
4 snprintf [call site] 00253
4 strcpy [call site] 00254
4 crow::json::wvalue::dump_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const [function] [call site] 00255
5 crow::json::escape(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00256
6 crow::json::to_hex(char) [function] [call site] 00257
6 crow::json::to_hex(char) [function] [call site] 00258
4 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00259
4 crow::json::wvalue::dump_internal(crow::json::wvalue const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00260
5 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00261
5 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00262
5 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00263
5 crow::json::wvalue::dump_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const [function] [call site] 00264
5 crow::json::wvalue::dump_internal(crow::json::wvalue const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00265
6 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00266
6 crow::json::wvalue::dump_indentation_part(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long, char, int) const [function] [call site] 00267
1 crow::json::wvalue::dump(unsigned long, char) const [function] [call site] 00268
1 crow::json::load(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00269
1 crow::json::rvalue::t() const [function] [call site] 00270
1 crow::json::rvalue::~rvalue() [function] [call site] 00271
1 crow::json::wvalue::~wvalue() [function] [call site] 00272
2 crow::returnable::~returnable() [function] [call site] 00273
1 crow::json::rvalue::~rvalue() [function] [call site] 00274
1 __cxa_begin_catch [call site] 00275
1 __cxa_end_catch [call site] 00276