Fuzz introspector: fuzz_ndjson
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 28 simdjson::dom::document_stream::next() call site: 00000 /src/simdjson/include/simdjson/dom/document_stream-inl.h:240
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::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, 1000>() [function] [call site] 00002
2 unsigned short FuzzData::get () [function] [call site] 00003
1 FuzzData::remainder_as_stringview() [function] [call site] 00004
2 FuzzData::chardata() const [function] [call site] 00005
1 simdjson::padded_string::padded_string(std::__1::basic_string_view >) [function] [call site] 00006
2 simdjson::internal::allocate_padded_buffer(unsigned long) [function] [call site] 00007
1 simdjson::dom::document::document() [function] [call site] 00008
1 simdjson::dom::stage1_worker::stage1_worker() [function] [call site] 00009
1 simdjson::dom::document::document() [function] [call site] 00010
1 simdjson::dom::parser::parse_many(simdjson::padded_string const&, unsigned long) [function] [call site] 00011
2 simdjson::padded_string::data() const [function] [call site] 00012
2 simdjson::dom::parser::parse_many(char const*, unsigned long, unsigned long) [function] [call site] 00013
3 simdjson::dom::parser::parse_many(unsigned char const*, unsigned long, unsigned long) [function] [call site] 00014
4 simdjson::dom::stage1_worker::stage1_worker() [function] [call site] 00015
4 simdjson::dom::parser::~parser() [function] [call site] 00016
5 simdjson::dom::document::~document() [function] [call site] 00017
1 simdjson::dom::document::operator=(simdjson::dom::document&&) [function] [call site] 00018
1 simdjson::dom::document_stream::start() [function] [call site] 00019
2 simdjson::dom::parser::ensure_capacity(unsigned long) [function] [call site] 00020
3 simdjson::dom::parser::ensure_capacity(simdjson::dom::document&, unsigned long) [function] [call site] 00021
4 simdjson::dom::document::capacity() const [function] [call site] 00022
4 simdjson::dom::document::capacity() const [function] [call site] 00023
4 simdjson::dom::parser::allocate(unsigned long, unsigned long) [function] [call site] 00024
5 simdjson::internal::dom_parser_implementation::allocate(unsigned long, unsigned long) [function] [call site] 00025
5 simdjson::get_active_implementation() [function] [call site] 00026
6 __cxa_guard_acquire [call site] 00027
6 simdjson::implementation::~implementation() [function] [call site] 00028
6 __cxa_guard_acquire [call site] 00029
6 simdjson::internal::atomic_ptr ::atomic_ptr(simdjson::implementation const*) [function] [call site] 00030
5 simdjson::internal::atomic_ptr ::operator->() [function] [call site] 00031
5 __clang_call_terminate [call site] 00032
6 __cxa_begin_catch [call site] 00033
2 simdjson::dom::document_stream::run_stage1(simdjson::dom::parser&, unsigned long) [function] [call site] 00034
2 simdjson::dom::document_stream::next_batch_start() const [function] [call site] 00035
2 simdjson::dom::document_stream::run_stage1(simdjson::dom::parser&, unsigned long) [function] [call site] 00036
2 simdjson::dom::document_stream::next_batch_start() const [function] [call site] 00037
2 simdjson::dom::parser::ensure_capacity(unsigned long) [function] [call site] 00038
2 simdjson::dom::stage1_worker::start_thread() [function] [call site] 00039
2 simdjson::dom::document_stream::start_stage1_thread() [function] [call site] 00040
3 simdjson::dom::document_stream::next_batch_start() const [function] [call site] 00041
3 simdjson::dom::stage1_worker::run(simdjson::dom::document_stream*, simdjson::dom::parser*, unsigned long) [function] [call site] 00042
3 __clang_call_terminate [call site] 00043
2 simdjson::dom::document_stream::next() [function] [call site] 00044
3 simdjson::dom::document_stream::next_batch_start() const [function] [call site] 00045
3 simdjson::dom::document_stream::load_from_stage1_thread() [function] [call site] 00046
4 simdjson::dom::stage1_worker::finish() [function] [call site] 00047
4 simdjson::dom::document_stream::next_batch_start() const [function] [call site] 00048
4 simdjson::dom::document_stream::start_stage1_thread() [function] [call site] 00049
4 __clang_call_terminate [call site] 00050
3 simdjson::dom::document_stream::run_stage1(simdjson::dom::parser&, unsigned long) [function] [call site] 00051
2 __clang_call_terminate [call site] 00052
1 simdjson::dom::parser::parse_many(simdjson::padded_string const&, unsigned long) [function] [call site] 00053
1 simdjson::dom::document::root() const [function] [call site] 00054
1 simdjson::dom::element::is_bool() const [function] [call site] 00055
2 simdjson::simdjson_result simdjson::dom::element::get () const [function] [call site] 00056
3 simdjson::dom::element::get_bool() const [function] [call site] 00057
1 simdjson::dom::document_stream::start() [function] [call site] 00058
1 simdjson::dom::document::root() const [function] [call site] 00059
1 simdjson::dom::element::is_bool() const [function] [call site] 00060
1 simdjson::dom::parser::~parser() [function] [call site] 00061
1 simdjson::padded_string::~padded_string() [function] [call site] 00062