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 89 crow::json::rvalue::begin() const call site: 00089 __cxa_allocate_exception
5 96 crow::json::rvalue::end() const call site: 00096 __cxa_allocate_exception
5 130 crow::json::rvalue::keys() const call site: 00130 __cxa_allocate_exception
5 139 crow::json::rvalue::operator[](std::__1::basic_string , std::__1::allocator > const&) const call site: 00139 __cxa_allocate_exception
4 158 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: 00158 __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 168 LLVMFuzzerTestOneInput call site: 00168 __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
10 crow::json::detail::r_string::r_string(char*, char*) [function] [call site] 00067
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00068
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_value(unsigned int) [function] [call site] 00069
10 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::decode_string() [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::rvalue::rvalue(crow::json::type) [function] [call site] 00073
10 crow::json::rvalue::rvalue() [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::load_nocopy_internal(char*, unsigned long)::Parser::decode_number() [function] [call site] 00077
11 crow::json::rvalue::rvalue(crow::json::type, char*, char*) [function] [call site] 00078
11 crow::json::rvalue::rvalue() [function] [call site] 00079
11 crow::json::rvalue::rvalue() [function] [call site] 00080
9 crow::json::rvalue::operator bool() const [function] [call site] 00081
9 crow::json::rvalue::set_error() [function] [call site] 00082
9 crow::json::rvalue::~rvalue() [function] [call site] 00083
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00084
9 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00085
9 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00086
10 crow::json::rvalue::rvalue() [function] [call site] 00087
10 crow::json::rvalue::begin() const [function] [call site] 00088
11 crow::json::rvalue::t() const [function] [call site] 00089
11 __cxa_allocate_exception [call site] 00090
11 std::runtime_error::runtime_error(char const*) [call site] 00091
11 __cxa_throw [call site] 00092
11 std::runtime_error::~runtime_error() [call site] 00093
11 __cxa_free_exception [call site] 00094
10 crow::json::rvalue::end() const [function] [call site] 00095
11 crow::json::rvalue::t() const [function] [call site] 00096
11 __cxa_allocate_exception [call site] 00097
11 std::runtime_error::runtime_error(char const*) [call site] 00098
11 __cxa_throw [call site] 00099
11 std::runtime_error::~runtime_error() [call site] 00100
11 __cxa_free_exception [call site] 00101
10 crow::json::rvalue::operator=(crow::json::rvalue&&) [function] [call site] 00102
11 crow::json::detail::r_string::operator=(crow::json::detail::r_string&&) [function] [call site] 00103
11 __clang_call_terminate [call site] 00104
10 crow::json::rvalue::operator=(crow::json::rvalue&&) [function] [call site] 00105
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00106
9 crow::json::rvalue::set_error() [function] [call site] 00107
9 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00108
9 crow::json::detail::r_string::~r_string() [function] [call site] 00109
9 crow::json::rvalue::~rvalue() [function] [call site] 00110
7 crow::json::rvalue::operator bool() const [function] [call site] 00111
7 crow::json::rvalue::set_error() [function] [call site] 00112
7 crow::json::rvalue::~rvalue() [function] [call site] 00113
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00114
7 crow::json::rvalue::emplace_back(crow::json::rvalue&&) [function] [call site] 00115
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::consume(char) [function] [call site] 00116
7 crow::json::rvalue::set_error() [function] [call site] 00117
7 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00118
7 crow::json::rvalue::~rvalue() [function] [call site] 00119
5 crow::json::load_nocopy_internal(char*, unsigned long)::Parser::ws_skip() [function] [call site] 00120
5 crow::json::rvalue::operator bool() const [function] [call site] 00121
5 crow::json::rvalue::set_error() [function] [call site] 00122
5 crow::json::rvalue::~rvalue() [function] [call site] 00123
3 crow::json::rvalue::operator bool() const [function] [call site] 00124
3 crow::json::detail::r_string::force(char*, unsigned int) [function] [call site] 00125
3 crow::json::rvalue::~rvalue() [function] [call site] 00126
1 crow::json::rvalue::operator bool() const [function] [call site] 00127
1 crow::json::rvalue::t() const [function] [call site] 00128
1 crow::json::rvalue::keys() const [function] [call site] 00129
2 crow::json::rvalue::t() const [function] [call site] 00130
2 __cxa_allocate_exception [call site] 00131
2 std::runtime_error::runtime_error(char const*) [call site] 00132
2 __cxa_throw [call site] 00133
2 std::runtime_error::~runtime_error() [call site] 00134
2 __cxa_free_exception [call site] 00135
2 crow::json::rvalue::key() const [function] [call site] 00136
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] 00137
1 crow::json::rvalue::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const [function] [call site] 00138
2 crow::json::rvalue::t() const [function] [call site] 00139
2 __cxa_allocate_exception [call site] 00140
2 std::runtime_error::runtime_error(char const*) [call site] 00141
2 __cxa_throw [call site] 00142
2 std::runtime_error::~runtime_error() [call site] 00143
2 __cxa_free_exception [call site] 00144
2 crow::json::rvalue::is_cached() const [function] [call site] 00145
2 crow::json::rvalue::begin() const [function] [call site] 00146
2 crow::json::rvalue::end() const [function] [call site] 00147
2 crow::json::rvalue::set_cached() const [function] [call site] 00148
2 crow::json::rvalue::begin() const [function] [call site] 00149
2 crow::json::rvalue::end() const [function] [call site] 00150
2 crow::json::rvalue::end() const [function] [call site] 00151
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] 00152
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] 00153
4 crow::json::detail::r_string::size() const [function] [call site] 00154
5 crow::json::detail::r_string::end() const [function] [call site] 00155
5 crow::json::detail::r_string::begin() const [function] [call site] 00156
4 crow::json::detail::r_string::size() const [function] [call site] 00157
4 crow::json::detail::r_string::begin() const [function] [call site] 00158
2 __cxa_allocate_exception [call site] 00159
2 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00160
2 __cxa_throw [call site] 00161
2 __cxa_free_exception [call site] 00162
1 crow::json::rvalue::t() const [function] [call site] 00163
1 crow::json::rvalue::begin() const [function] [call site] 00164
1 crow::json::rvalue::end() const [function] [call site] 00165
1 crow::json::rvalue::t() const [function] [call site] 00166
1 crow::json::rvalue::~rvalue() [function] [call site] 00167
1 __cxa_begin_catch [call site] 00168
1 __cxa_end_catch [call site] 00169