Fuzz introspector: fuzz_element
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
7 7 2 :

['std::__1::unique_ptr >::operator->() const', 'simdjson::internal::dom_parser_implementation::allocate(unsigned long, unsigned long)']

7 7 simdjson::dom::parser::allocate(unsignedlong,unsignedlong) call site: 00000 /src/simdjson/include/simdjson/dom/parser-inl.h:185
0 0 None 0 144 simdjson::internal::detect_best_supported_implementation_on_first_use::set_best()const call site: 00000 /src/simdjson/src/implementation.cpp:160
0 0 None 0 133 simdjson::internal::adjusted_mantissasimdjson::internal::compute_float >(simdjson::internal::decimal&) call site: 00000 /src/simdjson/src/from_chars.cpp:479
0 0 None 0 116 simdjson::internal::adjusted_mantissasimdjson::internal::compute_float >(simdjson::internal::decimal&) call site: 00000 /src/simdjson/src/from_chars.cpp:500
0 0 None 0 12 simdjson::internal::parse_decimal(charconst*&) call site: 00000 /src/simdjson/src/from_chars.cpp:68
0 0 None 0 6 simdjson::internal::adjusted_mantissasimdjson::internal::compute_float >(simdjson::internal::decimal&) call site: 00000 /src/simdjson/src/from_chars.cpp:535
0 0 None 0 0 simdjson::dom::document::allocate(unsignedlong) call site: 00000 /src/simdjson/include/simdjson/dom/document-inl.h:29
0 0 None 0 0 simdjson::dom::element::get_int64()const call site: 00000 /src/simdjson/include/simdjson/dom/element-inl.h:252
0 0 None 0 0 simdjson::dom::parser::ensure_capacity(simdjson::dom::document&,unsignedlong) call site: 00000 /src/simdjson/include/simdjson/dom/parser-inl.h:217
0 0 None 0 0 simdjson::internal::detect_supported_architectures() call site: 00000 /src/simdjson/include/simdjson/internal/isadetection.h:197
0 0 None 0 0 simdjson::internal::decimal_right_shift(simdjson::internal::decimal&,unsignedint) call site: 00000 /src/simdjson/src/from_chars.cpp:412

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 FuzzData::FuzzData(unsigned char const*, unsigned long) [function] [call site] 00001
1 int FuzzData::getInt<0, 31>() [function] [call site] 00002
2 unsigned char FuzzData::get () [function] [call site] 00003
1 int FuzzData::getInt<0, 7>() [function] [call site] 00004
1 unsigned long FuzzData::get () [function] [call site] 00005
1 FuzzData::splitIntoStrings() [function] [call site] 00006
2 FuzzData::chardata() const [function] [call site] 00007
1 FuzzData::operator bool() const [function] [call site] 00008
1 simdjson::dom::document::document() [function] [call site] 00009
1 simdjson::padded_string::padded_string(std::__1::basic_string_view >) [function] [call site] 00010
2 simdjson::internal::allocate_padded_buffer(unsigned long) [function] [call site] 00011
1 simdjson::dom::parser::parse(unsigned char const*, unsigned long, bool) & [function] [call site] 00012
2 simdjson::dom::parser::parse_into_document(simdjson::dom::document&, unsigned char const*, unsigned long, bool) & [function] [call site] 00013
3 simdjson::dom::parser::ensure_capacity(simdjson::dom::document&, unsigned long) [function] [call site] 00014
4 simdjson::dom::document::capacity() const [function] [call site] 00015
4 simdjson::dom::document::capacity() const [function] [call site] 00016
4 simdjson::dom::parser::allocate(unsigned long, unsigned long) [function] [call site] 00017
5 simdjson::internal::dom_parser_implementation::allocate(unsigned long, unsigned long) [function] [call site] 00018
5 simdjson::get_active_implementation() [function] [call site] 00019
6 __cxa_guard_acquire [call site] 00020
6 simdjson::implementation::~implementation() [function] [call site] 00021
6 __cxa_guard_acquire [call site] 00022
6 simdjson::internal::atomic_ptr ::atomic_ptr(simdjson::implementation const*) [function] [call site] 00023
5 simdjson::internal::atomic_ptr ::operator->() [function] [call site] 00024
5 __clang_call_terminate [call site] 00025
6 __cxa_begin_catch [call site] 00026
3 simdjson::internal::allocate_padded_buffer(unsigned long) [function] [call site] 00027
3 simdjson::dom::document::root() const [function] [call site] 00028
1 simdjson::dom::element::get_array() const [function] [call site] 00029
1 simdjson::dom::element::get_object() const [function] [call site] 00030
1 simdjson::dom::element::get_c_str() const [function] [call site] 00031
1 simdjson::dom::element::get_string_length() const [function] [call site] 00032
1 simdjson::dom::element::get_string() const [function] [call site] 00033
2 simdjson::internal::tape_ref::get_string_view() const [function] [call site] 00034
1 simdjson::dom::element::get_int64() const [function] [call site] 00035
1 simdjson::dom::element::get_uint64() const [function] [call site] 00036
1 simdjson::dom::element::get_double() const [function] [call site] 00037
1 simdjson::dom::element::get_bool() const [function] [call site] 00038
1 simdjson::dom::element::is_array() const [function] [call site] 00039
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00040
3 simdjson::dom::element::get_array() const [function] [call site] 00041
1 simdjson::dom::element::is_object() const [function] [call site] 00042
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00043
3 simdjson::dom::element::get_object() const [function] [call site] 00044
1 simdjson::dom::element::is_string() const [function] [call site] 00045
2 simdjson::simdjson_result > > simdjson::dom::element::get > >() const [function] [call site] 00046
3 simdjson::dom::element::get_string() const [function] [call site] 00047
1 simdjson::dom::element::is_int64() const [function] [call site] 00048
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00049
3 simdjson::dom::element::get_int64() const [function] [call site] 00050
1 simdjson::dom::element::is_uint64() const [function] [call site] 00051
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00052
3 simdjson::dom::element::get_uint64() const [function] [call site] 00053
1 simdjson::dom::element::is_double() const [function] [call site] 00054
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00055
3 simdjson::dom::element::get_double() const [function] [call site] 00056
1 simdjson::dom::element::is_number() const [function] [call site] 00057
2 simdjson::dom::element::is_int64() const [function] [call site] 00058
1 simdjson::dom::element::is_bool() const [function] [call site] 00059
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00060
3 simdjson::dom::element::get_bool() const [function] [call site] 00061
1 simdjson::dom::element::is_null() const [function] [call site] 00062
1 auto LLVMFuzzerTestOneInput::$_1::operator() (LLVMFuzzerTestOneInput::$_0) const [function] [call site] 00063
2 auto LLVMFuzzerTestOneInput::$_0::operator() (bool) const [function] [call site] 00064
3 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00065
2 auto LLVMFuzzerTestOneInput::$_0::operator() (double) const [function] [call site] 00066
2 auto LLVMFuzzerTestOneInput::$_0::operator() (unsigned long) const [function] [call site] 00067
2 auto LLVMFuzzerTestOneInput::$_0::operator() (long) const [function] [call site] 00068
2 auto LLVMFuzzerTestOneInput::$_0::operator() > >(std::__1::basic_string_view >) const [function] [call site] 00069
2 auto LLVMFuzzerTestOneInput::$_0::operator() (char const*) const [function] [call site] 00070
2 auto LLVMFuzzerTestOneInput::$_0::operator() (simdjson::dom::array) const [function] [call site] 00071
2 auto LLVMFuzzerTestOneInput::$_0::operator() (simdjson::dom::object) const [function] [call site] 00072
1 auto LLVMFuzzerTestOneInput::$_1::operator() (LLVMFuzzerTestOneInput::$_2) const [function] [call site] 00073
1 auto LLVMFuzzerTestOneInput::$_1::operator() (LLVMFuzzerTestOneInput::$_3) const [function] [call site] 00074
1 auto LLVMFuzzerTestOneInput::$_1::operator() (LLVMFuzzerTestOneInput::$_4) const [function] [call site] 00075
1 simdjson::dom::element::begin() const [function] [call site] 00076
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00077
2 simdjson::simdjson_result ::begin() const [function] [call site] 00078
3 __cxa_allocate_exception [call site] 00079
3 simdjson::simdjson_error::simdjson_error(simdjson::error_code) [function] [call site] 00080
4 std::exception::exception() [function] [call site] 00081
3 simdjson::dom::array::begin() const [function] [call site] 00082
1 simdjson::dom::element::end() const [function] [call site] 00083
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00084
2 simdjson::simdjson_result ::end() const [function] [call site] 00085
3 __cxa_allocate_exception [call site] 00086
3 simdjson::simdjson_error::simdjson_error(simdjson::error_code) [function] [call site] 00087
3 simdjson::dom::array::end() const [function] [call site] 00088
4 simdjson::internal::tape_ref::after_element() const [function] [call site] 00089
1 simdjson::dom::element::operator[](std::__1::basic_string_view >) const [function] [call site] 00090
2 simdjson::dom::element::at_key(std::__1::basic_string_view >) const [function] [call site] 00091
3 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00092
3 simdjson::simdjson_result ::at_key(std::__1::basic_string_view >) const [function] [call site] 00093
4 simdjson::dom::object::at_key(std::__1::basic_string_view >) const [function] [call site] 00094
5 simdjson::dom::object::end() const [function] [call site] 00095
6 simdjson::internal::tape_ref::after_element() const [function] [call site] 00096
5 simdjson::dom::object::begin() const [function] [call site] 00097
5 simdjson::dom::object::iterator::key_equals(std::__1::basic_string_view >) const [function] [call site] 00098
6 simdjson::dom::object::iterator::key_length() const [function] [call site] 00099
6 simdjson::dom::object::iterator::key_c_str() const [function] [call site] 00100
6 memcmp [call site] 00101
5 simdjson::dom::object::iterator::value() const [function] [call site] 00102
1 simdjson::dom::element::at_pointer(std::__1::basic_string_view >) const [function] [call site] 00103
2 simdjson::dom::object::at_pointer(std::__1::basic_string_view >) const [function] [call site] 00104
3 simdjson::dom::object::at_key(std::__1::basic_string_view >) const [function] [call site] 00105
3 simdjson::simdjson_result ::operator=(simdjson::simdjson_result &&) [function] [call site] 00106
4 simdjson::internal::simdjson_result_base ::operator=(simdjson::internal::simdjson_result_base &&) [function] [call site] 00107
3 simdjson::dom::object::at_key(std::__1::basic_string_view >) const [function] [call site] 00108
3 simdjson::simdjson_result ::operator=(simdjson::simdjson_result &&) [function] [call site] 00109
3 simdjson::dom::element::at_pointer(std::__1::basic_string_view >) const [function] [call site] 00110
4 simdjson::dom::array::at_pointer(std::__1::basic_string_view >) const [function] [call site] 00111
5 simdjson::dom::array::at(unsigned long) const [function] [call site] 00112
6 simdjson::dom::array::begin() const [function] [call site] 00113
5 simdjson::dom::element::at_pointer(std::__1::basic_string_view >) const [function] [call site] 00114
5 simdjson::simdjson_result ::operator=(simdjson::simdjson_result &&) [function] [call site] 00115
5 __clang_call_terminate [call site] 00116
3 simdjson::simdjson_result ::operator=(simdjson::simdjson_result &&) [function] [call site] 00117
3 __clang_call_terminate [call site] 00118
1 simdjson::dom::element::at(unsigned long) const [function] [call site] 00119
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00120
2 simdjson::simdjson_result ::at(unsigned long) const [function] [call site] 00121
3 simdjson::dom::array::at(unsigned long) const [function] [call site] 00122
1 simdjson::dom::element::at_key(std::__1::basic_string_view >) const [function] [call site] 00123
1 simdjson::dom::element::at_key_case_insensitive(std::__1::basic_string_view >) const [function] [call site] 00124
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00125
2 simdjson::simdjson_result ::at_key_case_insensitive(std::__1::basic_string_view >) const [function] [call site] 00126
3 simdjson::dom::object::at_key_case_insensitive(std::__1::basic_string_view >) const [function] [call site] 00127
4 simdjson::dom::object::end() const [function] [call site] 00128
4 simdjson::dom::object::begin() const [function] [call site] 00129
4 simdjson::dom::object::iterator::key_equals_case_insensitive(std::__1::basic_string_view >) const [function] [call site] 00130
5 simdjson::dom::object::iterator::key_length() const [function] [call site] 00131
5 simdjson::dom::object::iterator::key_c_str() const [function] [call site] 00132
5 strncasecmp [call site] 00133
4 simdjson::dom::object::iterator::value() const [function] [call site] 00134
1 NulOStream::NulOStream() [function] [call site] 00135
2 NulStreambuf::NulStreambuf() [function] [call site] 00136
1 simdjson::dom::element::dump_raw_tape(std::__1::basic_ostream >&) const [function] [call site] 00137
2 simdjson::dom::document::dump_raw_tape(std::__1::basic_ostream >&) const [function] [call site] 00138
3 simdjson::internal::escape_json_string::escape_json_string(std::__1::basic_string_view >) [function] [call site] 00139
3 __clang_call_terminate [call site] 00140
1 NulOStream::~NulOStream() [function] [call site] 00141
2 NulOStream::~NulOStream() [function] [call site] 00142
1 __cxa_begin_catch [call site] 00143
1 __cxa_end_catch [call site] 00144
1 simdjson::dom::parser::~parser() [function] [call site] 00145
2 simdjson::dom::document::~document() [function] [call site] 00146