Fuzz introspector: fuzz_decode

Fuzz blockers

The followings nodes represent call sites where fuzz blockers occur

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
4 24 spotify::json::detail::(anonymous namespace)::escape_key(std::__1::basic_string , std::__1::allocator > const&) call site __cxa_allocate_exception
4 118 spotify::json::detail::(anonymous namespace)::skip_simple_value(spotify::json::decode_context&) call site memcmp
2 15 void spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::add_field , std::__1::allocator >, (anonymous namespace)::custom_obj, spotify::json::codec::string_t>(std::__1::basic_string , std::__1::allocator > const&, bool, std::__1::basic_string , std::__1::allocator > (anonymous namespace)::custom_obj::*, spotify::json::codec::string_t&&) call site
2 20 spotify::json::detail::(anonymous namespace)::escape_key(std::__1::basic_string , std::__1::allocator > const&) call site __cxa_allocate_exception
2 31 spotify::json::detail::write_escaped_sse42(spotify::json::encode_context&, char const*, char const*) call site
1 40 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::object_type spotify::json::decode >(spotify::json::codec::object_t<(anonymous namespace)::custom_obj> const&, char const*, unsigned long) call site
1 50 spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const call site
1 54 spotify::json::decode_exception::decode_exception(char const*, unsigned long) call site
1 92 spotify::json::detail::field_registry::find(std::__1::basic_string , std::__1::allocator > const&) const call site __cxa_begin_catch

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site2] 00000
1 (anonymous namespace)::custom_obj::custom_obj() [function] [call site2] 00001
1 bool spotify::json::try_decode<(anonymous namespace)::custom_obj, std::__1::basic_string , std::__1::allocator > >((anonymous namespace)::custom_obj&, std::__1::basic_string , std::__1::allocator > const&) [function] [call site2] 00002
2 _ZN7spotify4json13default_codecIN12_GLOBAL__N_110custom_objEEEDTclsr15default_codec_tIT_EE5codecEEv [function] [call site2] 00003
3 spotify::json::default_codec_t<(anonymous namespace)::custom_obj>::codec() [function] [call site2] 00004
4 spotify::json::codec::object_t<(anonymous namespace)::custom_obj> spotify::json::codec::object<(anonymous namespace)::custom_obj>() [function] [call site2] 00005
5 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::object_t<(anonymous namespace)::custom_obj, void>() [function] [call site2] 00006
6 spotify::json::codec::codec_detail::object_t_base::object_t_base() [function] [call site2] 00007
7 spotify::json::detail::field_registry::field_registry() [function] [call site2] 00008
4 void spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::required , std::__1::allocator > (anonymous namespace)::custom_obj::*>(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > (anonymous namespace)::custom_obj::*&&) [function] [call site2] 00009
5 void spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::add_field , std::__1::allocator >, (anonymous namespace)::custom_obj>(std::__1::basic_string , std::__1::allocator > const&, bool, std::__1::basic_string , std::__1::allocator > (anonymous namespace)::custom_obj::*) [function] [call site2] 00010
6 _ZN7spotify4json13default_codecINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEEDTclsr15default_codec_tIT_EE5codecEEv [function] [call site2] 00011
7 spotify::json::default_codec_t , std::__1::allocator > >::codec() [function] [call site2] 00012
6 void spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::add_field , std::__1::allocator >, (anonymous namespace)::custom_obj, spotify::json::codec::string_t>(std::__1::basic_string , std::__1::allocator > const&, bool, std::__1::basic_string , std::__1::allocator > (anonymous namespace)::custom_obj::*, spotify::json::codec::string_t&&) [function] [call site2] 00013
7 spotify::json::detail::field_registry::num_required_fields() const [function] [call site2] 00014
7 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::member_var_field , std::__1::allocator > (anonymous namespace)::custom_obj::*, spotify::json::codec::string_t>::member_var_field(bool, unsigned long, spotify::json::codec::string_t&&, std::__1::basic_string , std::__1::allocator > (anonymous namespace)::custom_obj::*) [function] [call site2] 00015
8 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::codec_field ::codec_field(bool, unsigned long, spotify::json::codec::string_t&&) [function] [call site2] 00016
9 spotify::json::detail::field::field(bool, unsigned long) [function] [call site2] 00017
7 spotify::json::detail::field_registry::save(std::__1::basic_string , std::__1::allocator > const&, bool, std::__1::shared_ptr const&) [function] [call site2] 00018
8 spotify::json::detail::(anonymous namespace)::escape_key(std::__1::basic_string , std::__1::allocator > const&) [function] [call site2] 00019
9 spotify::json::encode_context::encode_context(unsigned long) [function] [call site2] 00020
10 spotify::json::detail::cpuid::cpuid() [function] [call site2] 00021
10 __cxa_allocate_exception [call site2] 00022
9 spotify::json::codec::string() [function] [call site2] 00023
9 spotify::json::codec::string_t::encode(spotify::json::encode_context&, std::__1::basic_string , std::__1::allocator >) const [function] [call site2] 00024
10 spotify::json::encode_context::grow_buffer(unsigned long) [function] [call site2] 00025
11 __cxa_allocate_exception [call site2] 00026
11 realloc [call site2] 00027
11 __cxa_allocate_exception [call site2] 00028
10 spotify::json::detail::write_escaped(spotify::json::encode_context&, char const*, char const*) [function] [call site2] 00029
11 spotify::json::detail::write_escaped_sse42(spotify::json::encode_context&, char const*, char const*) [function] [call site2] 00030
12 spotify::json::encode_context::grow_buffer(unsigned long) [function] [call site2] 00031
11 spotify::json::detail::write_escaped_scalar(spotify::json::encode_context&, char const*, char const*) [function] [call site2] 00032
12 spotify::json::encode_context::grow_buffer(unsigned long) [function] [call site2] 00033
9 spotify::json::encode_context::~encode_context() [function] [call site2] 00034
4 spotify::json::codec::codec_detail::object_t_base::~object_t_base() [function] [call site2] 00035
5 spotify::json::detail::field_registry::~field_registry() [function] [call site2] 00036
2 bool spotify::json::try_decode , std::__1::basic_string , std::__1::allocator > >(spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::object_type&, spotify::json::codec::object_t<(anonymous namespace)::custom_obj> const&, std::__1::basic_string , std::__1::allocator > const&) [function] [call site2] 00037
3 bool spotify::json::try_decode >(spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::object_type&, spotify::json::codec::object_t<(anonymous namespace)::custom_obj> const&, char const*, unsigned long) [function] [call site2] 00038
4 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::object_type spotify::json::decode >(spotify::json::codec::object_t<(anonymous namespace)::custom_obj> const&, char const*, unsigned long) [function] [call site2] 00039
5 spotify::json::decode_context::decode_context(char const*, char const*) [function] [call site2] 00040
6 spotify::json::detail::cpuid::cpuid() [function] [call site2] 00041
5 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00042
5 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::decode(spotify::json::decode_context&) const [function] [call site2] 00043
6 spotify::json::codec::object_t<(anonymous namespace)::custom_obj>::construct(std::__1::integral_constant ) const [function] [call site2] 00044
7 (anonymous namespace)::custom_obj::custom_obj() [function] [call site2] 00045
6 spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const [function] [call site2] 00046
7 spotify::json::detail::field_registry::num_required_fields() const [function] [call site2] 00047
7 spotify::json::detail::bitset<64ul>::bitset(unsigned long) [function] [call site2] 00048
8 spotify::json::detail::bitset_base::bitset_base(unsigned long, unsigned char*) [function] [call site2] 00049
7 void spotify::json::detail::decode_comma_separated (spotify::json::decode_context&, spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const::$_0 const&)::{lambda()#1}>(spotify::json::decode_context&, char, char, spotify::json::detail::decode_object (spotify::json::decode_context&, spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const::$_0 const&)::{lambda()#1}) [function] [call site2] 00050
8 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00051
9 __cxa_allocate_exception [call site2] 00052
9 spotify::json::decode_exception::decode_exception(char const*, unsigned long) [function] [call site2] 00053
10 std::runtime_error::runtime_error(char const*) [call site2] 00054
8 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00055
8 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00056
8 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00057
8 spotify::json::detail::decode_object (spotify::json::decode_context&, spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const::$_0 const&)::{lambda()#1}::operator()() const [function] [call site2] 00058
9 spotify::json::codec::string_t::decode(spotify::json::decode_context&) const [function] [call site2] 00059
10 spotify::json::codec::(anonymous namespace)::decode_string(spotify::json::decode_context&) [function] [call site2] 00060
11 spotify::json::detail::skip_any_simple_characters_sse42(spotify::json::decode_context&) [function] [call site2] 00061
11 spotify::json::detail::skip_any_simple_characters_scalar(spotify::json::decode_context&) [function] [call site2] 00062
11 spotify::json::codec::(anonymous namespace)::decode_escaped_string(spotify::json::decode_context&, char const*) [function] [call site2] 00063
12 spotify::json::codec::(anonymous namespace)::decode_escape(spotify::json::decode_context&, std::__1::basic_string , std::__1::allocator >&) [function] [call site2] 00064
13 spotify::json::codec::(anonymous namespace)::decode_unicode_escape(spotify::json::decode_context&, std::__1::basic_string , std::__1::allocator >&) [function] [call site2] 00065
14 spotify::json::codec::(anonymous namespace)::decode_hex_number(spotify::json::decode_context&) [function] [call site2] 00066
15 spotify::json::codec::(anonymous namespace)::decode_hex_nibble(spotify::json::decode_context&, char) [function] [call site2] 00067
16 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00068
15 spotify::json::codec::(anonymous namespace)::decode_hex_nibble(spotify::json::decode_context&, char) [function] [call site2] 00069
15 spotify::json::codec::(anonymous namespace)::decode_hex_nibble(spotify::json::decode_context&, char) [function] [call site2] 00070
15 spotify::json::codec::(anonymous namespace)::decode_hex_nibble(spotify::json::decode_context&, char) [function] [call site2] 00071
14 spotify::json::codec::(anonymous namespace)::handle_surrogate_pair(spotify::json::decode_context&, std::__1::basic_string , std::__1::allocator >&, unsigned int) [function] [call site2] 00072
15 spotify::json::codec::(anonymous namespace)::is_high_surrogate(unsigned int) [function] [call site2] 00073
15 spotify::json::codec::(anonymous namespace)::decode_hex_number(spotify::json::decode_context&) [function] [call site2] 00074
15 spotify::json::codec::(anonymous namespace)::is_low_surrogate(unsigned int) [function] [call site2] 00075
15 spotify::json::codec::(anonymous namespace)::codepoint_from_surrogate_pair(unsigned int, unsigned int) [function] [call site2] 00076
14 spotify::json::codec::(anonymous namespace)::encode_utf8(std::__1::basic_string , std::__1::allocator >&, unsigned int) [function] [call site2] 00077
15 spotify::json::codec::(anonymous namespace)::encode_utf8_1(std::__1::basic_string , std::__1::allocator >&, unsigned int) [function] [call site2] 00078
15 spotify::json::codec::(anonymous namespace)::encode_utf8_2(std::__1::basic_string , std::__1::allocator >&, unsigned int) [function] [call site2] 00079
15 spotify::json::codec::(anonymous namespace)::encode_utf8_3(std::__1::basic_string , std::__1::allocator >&, unsigned int) [function] [call site2] 00080
13 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00081
12 spotify::json::detail::skip_any_simple_characters_sse42(spotify::json::decode_context&) [function] [call site2] 00082
12 spotify::json::detail::skip_any_simple_characters_scalar(spotify::json::decode_context&) [function] [call site2] 00083
12 spotify::json::codec::(anonymous namespace)::decode_escape(spotify::json::decode_context&, std::__1::basic_string , std::__1::allocator >&) [function] [call site2] 00084
12 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00085
9 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00086
9 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00087
9 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00088
9 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00089
9 spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const::$_0::operator()(std::__1::basic_string , std::__1::allocator > const&) const [function] [call site2] 00090
10 spotify::json::detail::field_registry::find(std::__1::basic_string , std::__1::allocator > const&) const [function] [call site2] 00091
11 __clang_call_terminate [call site2] 00092
12 __cxa_begin_catch [call site2] 00093
10 spotify::json::detail::skip_value(spotify::json::decode_context&) [function] [call site2] 00094
11 spotify::json::detail::stack ::stack() [function] [call site2] 00095
11 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00096
11 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00097
11 spotify::json::detail::(anonymous namespace)::skip_string(spotify::json::decode_context&) [function] [call site2] 00098
12 spotify::json::detail::skip_any_simple_characters_sse42(spotify::json::decode_context&) [function] [call site2] 00099
12 spotify::json::detail::skip_any_simple_characters_scalar(spotify::json::decode_context&) [function] [call site2] 00100
12 spotify::json::detail::(anonymous namespace)::skip_escape(spotify::json::decode_context&) [function] [call site2] 00101
13 spotify::json::detail::(anonymous namespace)::skip_unicode_escape(spotify::json::decode_context&) [function] [call site2] 00102
14 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00103
13 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00104
12 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00105
11 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00106
11 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00107
11 spotify::json::detail::stack ::pop() [function] [call site2] 00108
12 __assert_fail [call site2] 00109
11 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00110
11 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00111
11 spotify::json::detail::stack ::push(char) [function] [call site2] 00112
11 spotify::json::detail::(anonymous namespace)::skip_simple_value(spotify::json::decode_context&) [function] [call site2] 00113
12 spotify::json::detail::(anonymous namespace)::skip_number(spotify::json::decode_context&) [function] [call site2] 00114
13 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00115
13 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00116
13 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00117
12 spotify::json::detail::(anonymous namespace)::skip_string(spotify::json::decode_context&) [function] [call site2] 00118
12 memcmp [call site2] 00119
12 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00120
12 memcmp [call site2] 00121
12 memcmp [call site2] 00122
12 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00123
11 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00124
11 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00125
11 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00126
11 spotify::json::detail::stack ::~stack() [function] [call site2] 00127
8 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00128
8 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00129
8 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00130
8 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00131
8 spotify::json::detail::decode_object (spotify::json::decode_context&, spotify::json::codec::codec_detail::object_t_base::decode(spotify::json::decode_context&, void*) const::$_0 const&)::{lambda()#1}::operator()() const [function] [call site2] 00132
8 spotify::json::detail::skip_any_whitespace_sse42(spotify::json::decode_context&) [function] [call site2] 00133
8 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00134
7 spotify::json::detail::field_registry::num_required_fields() const [function] [call site2] 00135
7 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00136
7 spotify::json::detail::bitset_base::~bitset_base() [function] [call site2] 00137
6 (anonymous namespace)::custom_obj::~custom_obj() [function] [call site2] 00138
5 spotify::json::detail::skip_any_whitespace_scalar(spotify::json::decode_context&) [function] [call site2] 00139
5 spotify::json::detail::fail(spotify::json::decode_context const&, char const*, long) [function] [call site2] 00140
5 (anonymous namespace)::custom_obj::~custom_obj() [function] [call site2] 00141
4 (anonymous namespace)::custom_obj::operator=((anonymous namespace)::custom_obj&&) [function] [call site2] 00142
4 __cxa_begin_catch [call site2] 00143
4 __cxa_end_catch [call site2] 00144
2 spotify::json::codec::codec_detail::object_t_base::~object_t_base() [function] [call site2] 00145
2 __clang_call_terminate [call site2] 00146
1 (anonymous namespace)::custom_obj::~custom_obj() [function] [call site2] 00147