Fuzz introspector: fuzz_decode
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
168 0 EP call site: 00000 _ZN7spotify4json13default_codecIN12_GLOBAL__N_110custom_objEEEDTclsr15default_codec_tIT_EE5codecEEv

Fuzzer calltree

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