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

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: json_view_image_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3232 82.5%
gold [1:9] 74 1.88%
yellow [10:29] 30 0.76%
greenyellow [30:49] 20 0.51%
lawngreen 50+ 561 14.3%
All colors 3917 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
737 3169 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [32], std::__1::basic_string , std::__1::allocator > const&>(char const (&) [32], std::__1::basic_string , std::__1::allocator > const&) call site: 03169 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKcSJ_EENS1_4view12throwing_saxISG_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISR_EE5valueEiE4typeELi0EEEbSR_
577 1333 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , true, nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false> >, true>::parse() call site: 01333 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRKSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SJ_EE5valueEiE4typeELi0EEEOT_
178 2990 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, std::__1::basic_string , std::__1::allocator >&, char, std::__1::basic_string , std::__1::allocator > const&, char const (&) [3], std::__1::basic_string , std::__1::allocator > const&>(std::__1::basic_string , std::__1::allocator >&, char&&, std::__1::basic_string , std::__1::allocator > const&, char const (&) [3], std::__1::basic_string , std::__1::allocator > const&) call site: 02990 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
173 761 nlohmann::json_abi_v3_12_0::detail::view::view_serializer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::write_double_beside(char*, nlohmann::json_abi_v3_12_0::detail::view::node const*, nlohmann::json_abi_v3_12_0::detail::view::view_serializer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::float_batch&) call site: 00761
122 314 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::walk_child(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&) call site: 00314 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
92 2894 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::view::throwing_sax , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, true>::parse() call site: 02894 __cxa_allocate_exception
86 473 nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&) call site: 00473 _ZN8nlohmann16json_abi_v3_12_06detail10serializerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEE12dump_integerImTnNS4_9enable_ifIXoooosr3std11is_integralIT_EE5valuesr3std7is_sameISK_mEE5valuesr3std7is_sameISK_lEE5valueEiE4typeELi0EEEvSK_
79 570 nlohmann::json_abi_v3_12_0::detail::dtoa_impl::write_decimal(char*, unsigned long, int) call site: 00570 __clang_call_terminate
71 1021 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> nlohmann::json_abi_v3_12_0::detail::view::materialize , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>(nlohmann::json_abi_v3_12_0::detail::view::document_data const&, nlohmann::json_abi_v3_12_0::detail::view::node const*) call site: 01021 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIPNS0_10basic_jsonINSt3__13mapENS5_6vectorENS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEblmdSB_NS0_14adl_serializerENS7_IhNSB_IhEEEEvEETnNS5_9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKSD_SK_
68 244 nlohmann::json_abi_v3_12_0::detail::view::view_serializer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::dump_text (nlohmann::json_abi_v3_12_0::detail::view::node const*)::{lambda(nlohmann::json_abi_v3_12_0::detail::view::node const&)#1}::operator()(nlohmann::json_abi_v3_12_0::detail::view::node const&) const call site: 00244 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2ISA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SH_EE5valueEiE4typeELi0EEEOT_
58 1240 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , true, nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false> >, true>::escaped_string(unsigned char const*, unsigned char const*&) call site: 01240 __assert_fail
36 1915 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::equal_structured(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const&, nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const&, unsigned long) call site: 01915 __clang_call_terminate

Runtime coverage analysis

Covered functions
469
Functions that are reachable but not covered
1606
Reachable functions
2705
Percentage of reachable functions covered
40.63%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-json_view_image.cpp 1
/src/json/tests/../single_include/nlohmann/json_view.hpp 409
/src/json/tests/../single_include/nlohmann/json.hpp 998
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_bon8_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3877 92.0%
gold [1:9] 0 0.0%
yellow [10:29] 3 0.07%
greenyellow [30:49] 6 0.14%
lawngreen 50+ 326 7.73%
All colors 4212 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
333 2062 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02062 __assert_fail
315 3468 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03468 fread
269 2830 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02830
212 2533 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02533 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_20input_stream_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
212 3921 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03921 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_18file_input_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
193 1085 nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&) call site: 01085 __assert_fail
169 3210 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03210
154 733 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00733 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImjTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
152 1279 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [22], std::__1::basic_string , std::__1::allocator > >(char const (&) [22], std::__1::basic_string , std::__1::allocator >&&) call site: 01279 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKhSJ_EENS1_26json_sax_dom_binary_parserISG_SK_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISQ_EE5valueEiE4typeELi0EEEbSQ_
136 2396 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02396
136 3784 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03784
127 232 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string , std::__1::allocator > >(char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string , std::__1::allocator >&&) call site: 00232 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRddTnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SI_EE5valueEiE4typeELi0EEEOT_

Runtime coverage analysis

Covered functions
650
Functions that are reachable but not covered
1815
Reachable functions
3237
Percentage of reachable functions covered
43.93%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_bon8.cpp 6
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1659
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_cbor_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3746 88.8%
gold [1:9] 0 0.0%
yellow [10:29] 21 0.49%
greenyellow [30:49] 7 0.16%
lawngreen 50+ 442 10.4%
All colors 4216 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
284 3925 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03925 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_18file_input_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
283 2537 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02537 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_20input_stream_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
235 1279 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [22], std::__1::basic_string , std::__1::allocator > >(char const (&) [22], std::__1::basic_string , std::__1::allocator >&&) call site: 01279 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKhSJ_EENS1_26json_sax_dom_binary_parserISG_SK_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISQ_EE5valueEiE4typeELi0EEEbSQ_
233 3214 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03214
193 1085 nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&) call site: 01085 __assert_fail
170 2051 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_cbor::operator() , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) const call site: 02051 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
155 3454 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_cbor::operator()<_IO_FILE*&>(_IO_FILE*&) const call site: 03454 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
154 733 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00733 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImjTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
136 2400 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02400
136 3788 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03788
127 2826 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_cbor::operator() , std::__1::__list_const_iterator >(std::__1::__list_const_iterator &&, std::__1::__list_const_iterator &&) const call site: 02826
122 360 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const*&, std::__1::basic_string , std::__1::allocator > >(char const*&, std::__1::basic_string , std::__1::allocator >&&) call site: 00360 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2ISA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SH_EE5valueEiE4typeELi0EEEOT_

Runtime coverage analysis

Covered functions
978
Functions that are reachable but not covered
1225
Reachable functions
3223
Percentage of reachable functions covered
61.99%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_cbor.cpp 6
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1649
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_json_view_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2787 72.2%
gold [1:9] 38 0.98%
yellow [10:29] 62 1.60%
greenyellow [30:49] 33 0.85%
lawngreen 50+ 935 24.2%
All colors 3855 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
285 3069 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const*&, char const (&) [5], std::__1::basic_string , std::__1::allocator > >(char const*&, char const (&) [5], std::__1::basic_string , std::__1::allocator >&&) call site: 03069 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERA5_KcJS9_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSE_OSF_DpOT1_
216 3381 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [22], std::__1::basic_string , std::__1::allocator > >(char const (&) [22], std::__1::basic_string , std::__1::allocator >&&) call site: 03381 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKcSJ_EENS1_4view12throwing_saxISG_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISR_EE5valueEiE4typeELi0EEEbSR_
209 1173 bool nlohmann::json_abi_v3_12_0::detail::parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false>::sax_parse_internal , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*) call site: 01173 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRKSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SJ_EE5valueEiE4typeELi0EEEOT_
155 2786 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const*&, std::__1::basic_string , std::__1::allocator > >(char const*&, std::__1::basic_string , std::__1::allocator >&&) call site: 02786 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
121 2946 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator > >(char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator >&&) call site: 02946 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
100 790 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , true, nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false> >, true>::escaped_string(unsigned char const*, unsigned char const*&) call site: 00790 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2ISA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SH_EE5valueEiE4typeELi0EEEOT_
83 2702 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > const&, char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator > const&, char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator >&&) call site: 02702 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
73 662 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::destroy_walk(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&) call site: 00662 __assert_fail
65 60 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_acceptor , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, false>::escaped_string(unsigned char const*, unsigned char const*&) call site: 00060 __assert_fail
57 598 (anonymous namespace)::parse_reference(unsigned char const*, unsigned long, bool, bool) call site: 00598 _ZN8nlohmann16json_abi_v3_12_06detail11other_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
54 211 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_acceptor , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, false>::parse() call site: 00211 __clang_call_terminate
48 2369 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::view::throwing_sax , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, true>::parse() call site: 02369

Runtime coverage analysis

Covered functions
1222
Functions that are reachable but not covered
915
Reachable functions
2773
Percentage of reachable functions covered
67.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_json_view.cpp 6
/src/json/tests/../single_include/nlohmann/json.hpp 1149
/usr/local/lib/clang/22/include/cpuid.h 2
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/src/json/tests/../single_include/nlohmann/json_view.hpp 281

Fuzzer: parse_bson_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 4073 93.4%
gold [1:9] 0 0.0%
yellow [10:29] 6 0.13%
greenyellow [30:49] 3 0.06%
lawngreen 50+ 277 6.35%
All colors 4359 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
284 4068 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 04068 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_18file_input_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
283 2680 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02680 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_20input_stream_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
235 1279 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [22], std::__1::basic_string , std::__1::allocator > >(char const (&) [22], std::__1::basic_string , std::__1::allocator >&&) call site: 01279 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKhSJ_EENS1_26json_sax_dom_binary_parserISG_SK_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISQ_EE5valueEiE4typeELi0EEEbSQ_
233 3357 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03357
193 1085 nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&) call site: 01085 __assert_fail
177 2365 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02365
177 3753 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03753
154 733 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00733 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImjTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
149 3097 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03097
136 2543 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02543
136 3931 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03931
122 572 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator > >(char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator >&&) call site: 00572 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_

Runtime coverage analysis

Covered functions
718
Functions that are reachable but not covered
1696
Reachable functions
3339
Percentage of reachable functions covered
49.21%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_bson.cpp 6
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1715
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_bjdata_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3843 84.7%
gold [1:9] 4 0.08%
yellow [10:29] 5 0.11%
greenyellow [30:49] 5 0.11%
lawngreen 50+ 677 14.9%
All colors 4534 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
241 2370 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_bjdata::operator() , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) const call site: 02370 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
226 3772 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_bjdata::operator()<_IO_FILE*&>(_IO_FILE*&) const call site: 03772 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
136 2719 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02719
136 4106 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 04106
129 3215 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::get_bytes , std::__1::allocator > >(int, char const*, std::__1::basic_string , std::__1::allocator >&) call site: 03215
110 777 nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1 ::test(short) call site: 00777
109 3422 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03422
99 595 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::get_bytes > > >(unsigned long, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 00595 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
94 241 nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*) call site: 00241 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
91 1423 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::parse_ubjson_internal() call site: 01423 __assert_fail
90 2612 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::get_bytes > > >(unsigned long, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 02612
90 3999 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::get_bytes > > >(unsigned long, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 03999

Runtime coverage analysis

Covered functions
1344
Functions that are reachable but not covered
918
Reachable functions
3550
Percentage of reachable functions covered
74.14%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_bjdata.cpp 7
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1835
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_msgpack_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3700 87.5%
gold [1:9] 3 0.07%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 522 12.3%
All colors 4225 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
284 3934 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03934 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_18file_input_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
283 2546 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02546 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_20input_stream_adapterENS1_26json_sax_dom_binary_parserISG_SH_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISN_EE5valueEiE4typeELi0EEEbSN_
235 1279 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [22], std::__1::basic_string , std::__1::allocator > >(char const (&) [22], std::__1::basic_string , std::__1::allocator >&&) call site: 01279 _ZN8nlohmann16json_abi_v3_12_06detail13binary_readerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEENS1_22iterator_input_adapterIPKhSJ_EENS1_26json_sax_dom_binary_parserISG_SK_EEE18emit_ubjson_numberIaTnNS4_9enable_ifIXaasr3std11is_integralIT_EE5valuesr3std9is_signedISQ_EE5valueEiE4typeELi0EEEbSQ_
233 3223 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03223
193 1085 nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&) call site: 01085 __assert_fail
140 2060 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_msgpack::operator() , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) const call site: 02060 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
127 232 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string , std::__1::allocator > >(char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string , std::__1::allocator >&&) call site: 00232 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRddTnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SI_EE5valueEiE4typeELi0EEEOT_
125 3463 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_msgpack::operator()<_IO_FILE*&>(_IO_FILE*&) const call site: 03463 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
113 2295 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::get_bytes > > >(unsigned short, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 02295
113 3683 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::get_bytes > > >(unsigned short, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 03683
106 588 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::get_bytes > > >(unsigned short, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&) call site: 00588 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
100 984 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [37], char const*&, char const (&) [2], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator > >(char const (&) [37], char const*&, char const (&) [2], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator >&&) call site: 00984 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_

Runtime coverage analysis

Covered functions
959
Functions that are reachable but not covered
1236
Reachable functions
3247
Percentage of reachable functions covered
61.93%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_msgpack.cpp 6
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1666
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_ubjson_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3957 87.4%
gold [1:9] 90 1.98%
yellow [10:29] 3 0.06%
greenyellow [30:49] 7 0.15%
lawngreen 50+ 469 10.3%
All colors 4526 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
348 2361 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_ubjson::operator() , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) const call site: 02361 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
333 3764 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_ubjson::operator()<_IO_FILE*&>(_IO_FILE*&) const call site: 03764 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
169 2046 nlohmann::json_abi_v3_12_0::detail::binary_writer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, unsigned char, nlohmann::json_abi_v3_12_0::detail::output_vector_sink > >::write_ubjson(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const&, bool, bool, bool, bool, nlohmann::json_abi_v3_12_0::detail::bjdata_version_t, unsigned long) call site: 02046 _ZNK8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvE3getIllEEDTcldtclL_ZNS2_7declvalB8ne220000IRKSE_EEDTclsr3stdE9__declvalIT_ELi0EEEvEE8get_implIT0_EtlNS0_6detail12priority_tagILj4EEEEEEv
143 3207 bool nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::get_bytes , std::__1::allocator > >(int, char const*, std::__1::basic_string , std::__1::allocator >&) call site: 03207
136 2710 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 02710
136 4098 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 04098
122 572 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator > >(char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string , std::__1::allocator >&&) call site: 00572 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
110 777 nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1 ::test(short) call site: 00777
109 3414 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 03414
94 241 nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*) call site: 00241 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
91 1423 nlohmann::json_abi_v3_12_0::detail::binary_reader , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::parse_ubjson_internal() call site: 01423 __assert_fail
81 2219 nlohmann::json_abi_v3_12_0::detail::binary_writer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, unsigned char, nlohmann::json_abi_v3_12_0::detail::output_vector_sink > >::write_ubjson_members(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const&, bool, bool, bool, bool, nlohmann::json_abi_v3_12_0::detail::bjdata_version_t, unsigned long) call site: 02219 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhNS1_18output_vector_sinkIhSE_EEE31write_number_with_ubjson_prefixIlTnNS4_9enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEvSM_bb

Runtime coverage analysis

Covered functions
1092
Functions that are reachable but not covered
1330
Reachable functions
3546
Percentage of reachable functions covered
62.49%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_ubjson.cpp 6
/src/json/tests/src/fuzzer_common.hpp 11
/src/json/tests/../single_include/nlohmann/json.hpp 1834
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzzer: parse_afl_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3044 75.7%
gold [1:9] 13 0.32%
yellow [10:29] 13 0.32%
greenyellow [30:49] 4 0.09%
lawngreen 50+ 946 23.5%
All colors 4020 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
212 880 bool nlohmann::json_abi_v3_12_0::detail::parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false>::sax_parse_internal , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*) call site: 00880 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRKSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SJ_EE5valueEiE4typeELi0EEEOT_
128 262 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , true, nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false> >, true>::escaped_string(unsigned char const*, unsigned char const*&) call site: 00262 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2ISA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SH_EE5valueEiE4typeELi0EEEOT_
123 2918 nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, false>::scan_number() call site: 02918 funlockfile
122 2142 nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, false>::scan_number() call site: 02142 __clang_call_terminate
117 2501 nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >, false>::scan_number() call site: 02501
109 1797 bool nlohmann::json_abi_v3_12_0::detail::parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false>::sax_parse_internal , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*) call site: 01797
91 1167 bool nlohmann::json_abi_v3_12_0::detail::serializer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >::put_short_quoted<2ul>(std::__1::basic_string , std::__1::allocator > const&, char const (&) [2ul]) call site: 01167 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
91 1935 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::parse_json::operator() , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) const call site: 01935 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
76 108 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::destroy_walk(nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&) call site: 00108 __assert_fail
70 2732 nlohmann::json_abi_v3_12_0::basic_json , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::parse_json::operator()<_IO_FILE*&>(_IO_FILE*&) const call site: 02732 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
61 520 nlohmann::json_abi_v3_12_0::detail::contiguous_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , true, nlohmann::json_abi_v3_12_0::detail::lexer , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , false> >, true>::parse() call site: 00520 __clang_call_terminate
57 1408 LLVMFuzzerTestOneInput call site: 01408 _ZN8nlohmann16json_abi_v3_12_06detail13input_adapterINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEETnNS3_9enable_ifIXsr28is_contiguous_byte_containerIT_EE5valueEiE4typeELi0EEEDTcl13input_adaptercldtfp_4dataEplcldtfp_4dataEcldtfp_4sizeEEERKSB_

Runtime coverage analysis

Covered functions
1421
Functions that are reachable but not covered
582
Reachable functions
3329
Percentage of reachable functions covered
82.52%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/json/tests/src/fuzzer-parse_json.cpp 10
/src/json/tests/src/fuzzer_common.hpp 17
/src/json/tests/../single_include/nlohmann/json.hpp 1665
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/usr/local/lib/clang/22/include/cpuid.h 2

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/json/tests/src/fuzzer-json_view_image.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [32], std::__1::basic_string, std::__1::allocator > const&>(char const (&) [32], std::__1::basic_string, std::__1::allocator > const&)', 'nlohmann::json_abi_v3_12_0::detail::contiguous_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, true, nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false> >, true>::parse()', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, std::__1::basic_string, std::__1::allocator >&, char, std::__1::basic_string, std::__1::allocator > const&, char const (&) [3], std::__1::basic_string, std::__1::allocator > const&>(std::__1::basic_string, std::__1::allocator >&, char&&, std::__1::basic_string, std::__1::allocator > const&, char const (&) [3], std::__1::basic_string, std::__1::allocator > const&)', 'nlohmann::json_abi_v3_12_0::detail::view::view_serializer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::write_double_beside(char*, nlohmann::json_abi_v3_12_0::detail::view::node const*, nlohmann::json_abi_v3_12_0::detail::view::view_serializer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::float_batch&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::walk_child(nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&)', 'nlohmann::json_abi_v3_12_0::detail::contiguous_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::view::throwing_sax, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, true>::parse()', 'nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::detail::dtoa_impl::write_decimal(char*, unsigned long, int)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> nlohmann::json_abi_v3_12_0::detail::view::materialize, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>(nlohmann::json_abi_v3_12_0::detail::view::document_data const&, nlohmann::json_abi_v3_12_0::detail::view::node const*)', 'nlohmann::json_abi_v3_12_0::detail::view::view_serializer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, false>::dump_text(nlohmann::json_abi_v3_12_0::detail::view::node const*)::{lambda(nlohmann::json_abi_v3_12_0::detail::view::node const&)#1}::operator()(nlohmann::json_abi_v3_12_0::detail::view::node const&) const']

/src/json/tests/src/fuzzer-parse_bon8.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [22], std::__1::basic_string, std::__1::allocator > >(char const (&) [22], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)']

/src/json/tests/src/fuzzer-parse_cbor.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [22], std::__1::basic_string, std::__1::allocator > >(char const (&) [22], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_cbor::operator(), std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&) const', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_cbor::operator()<_IO_FILE*&>(_IO_FILE*&) const', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)']

/src/json/tests/src/fuzzer-parse_json_view.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const*&, char const (&) [5], std::__1::basic_string, std::__1::allocator > >(char const*&, char const (&) [5], std::__1::basic_string, std::__1::allocator >&&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [22], std::__1::basic_string, std::__1::allocator > >(char const (&) [22], std::__1::basic_string, std::__1::allocator >&&)', 'bool nlohmann::json_abi_v3_12_0::detail::parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false>::sax_parse_internal, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const*&, std::__1::basic_string, std::__1::allocator > >(char const*&, std::__1::basic_string, std::__1::allocator >&&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator > >(char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::contiguous_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, true, nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false> >, true>::escaped_string(unsigned char const*, unsigned char const*&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, std::__1::basic_string, std::__1::allocator > const&, char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator > >(std::__1::basic_string, std::__1::allocator > const&, char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::destroy_walk(nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&)', 'nlohmann::json_abi_v3_12_0::detail::contiguous_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_acceptor, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >, false>::escaped_string(unsigned char const*, unsigned char const*&)', '(anonymous namespace)::parse_reference(unsigned char const*, unsigned long, bool, bool)']

/src/json/tests/src/fuzzer-parse_bson.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [22], std::__1::basic_string, std::__1::allocator > >(char const (&) [22], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)']

/src/json/tests/src/fuzzer-parse_bjdata.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_bjdata::operator(), std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&) const', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_bjdata::operator()<_IO_FILE*&>(_IO_FILE*&) const', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'bool nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::get_bytes, std::__1::allocator > >(int, char const*, std::__1::basic_string, std::__1::allocator >&)', 'nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1::test(short)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'bool nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::get_bytes > > >(unsigned long, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&)', 'nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter > >::parse_ubjson_internal()']

/src/json/tests/src/fuzzer-parse_msgpack.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [22], std::__1::basic_string, std::__1::allocator > >(char const (&) [22], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::vector_utf8_run(unsigned char const*, unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_msgpack::operator(), std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&) const', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string, std::__1::allocator > >(char const (&) [11], char const*&, char const (&) [8], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_msgpack::operator()<_IO_FILE*&>(_IO_FILE*&) const', 'bool nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::get_bytes > > >(unsigned short, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&)', 'bool nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::get_bytes > > >(unsigned short, char const*, nlohmann::json_abi_v3_12_0::byte_container_with_subtype > >&)']

/src/json/tests/src/fuzzer-parse_ubjson.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_ubjson::operator(), std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&) const', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::read_ubjson::operator()<_IO_FILE*&>(_IO_FILE*&) const', 'nlohmann::json_abi_v3_12_0::detail::binary_writer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, unsigned char, nlohmann::json_abi_v3_12_0::detail::output_vector_sink > >::write_ubjson(nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const&, bool, bool, bool, bool, nlohmann::json_abi_v3_12_0::detail::bjdata_version_t, unsigned long)', 'bool nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::get_bytes, std::__1::allocator > >(int, char const*, std::__1::basic_string, std::__1::allocator >&)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter> >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter>*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator > >(char const (&) [19], char const*&, char const (&) [42], char const*&, char const (&) [16], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1::test(short)', 'nlohmann::json_abi_v3_12_0::detail::binary_reader, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > > >::sax_parse(nlohmann::json_abi_v3_12_0::detail::json_sax_dom_binary_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator > >*, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', 'nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*)']

/src/json/tests/src/fuzzer-parse_json.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['bool nlohmann::json_abi_v3_12_0::detail::parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false>::sax_parse_internal, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*)', 'nlohmann::json_abi_v3_12_0::detail::contiguous_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, true, nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false> >, true>::escaped_string(unsigned char const*, unsigned char const*&)', 'nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::file_input_adapter, false>::scan_number()', 'nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::input_stream_adapter, false>::scan_number()', 'nlohmann::json_abi_v3_12_0::detail::lexer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >, false>::scan_number()', 'bool nlohmann::json_abi_v3_12_0::detail::parser, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>, nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, false>::sax_parse_internal, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > >(nlohmann::json_abi_v3_12_0::detail::json_sax_error_reporter, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >*)', 'bool nlohmann::json_abi_v3_12_0::detail::serializer, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >::put_short_quoted<2ul>(std::__1::basic_string, std::__1::allocator > const&, char const (&) [2ul])', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::parse_json::operator(), std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&) const', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::json_value::destroy_walk(nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>::data&)', 'nlohmann::json_abi_v3_12_0::basic_json, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> (anonymous namespace)::parse_json::operator()<_IO_FILE*&>(_IO_FILE*&) const']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
nlohmann::json_abi_v3_12_0::basic_json ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>::json_value::json_value(nlohmann::json_abi_v3_12_0::detail::value_t) 48 25 52.08% ['parse_json_view_fuzzer', 'parse_msgpack_fuzzer', 'parse_bon8_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_afl_fuzzer', 'parse_bson_fuzzer', 'parse_cbor_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::contiguous_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ,true,nlohmann::json_abi_v3_12_0::detail::lexer ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ,false>>,true>::parse() 234 105 44.87% ['parse_afl_fuzzer', 'json_view_image_fuzzer']
voidnlohmann::json_abi_v3_12_0::detail::serializer ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>>::dump_escaped_impl (std::__1::basic_string ,std::__1::allocator >const&) 198 104 52.52% ['parse_msgpack_fuzzer', 'parse_bon8_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_afl_fuzzer', 'parse_bson_fuzzer', 'parse_cbor_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::serializer ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>>::dump_binary_value(unsignedlong,nlohmann::json_abi_v3_12_0::byte_container_with_subtype >>const&) 52 26 50.0% ['parse_msgpack_fuzzer', 'parse_bon8_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_afl_fuzzer', 'parse_bson_fuzzer', 'parse_cbor_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::contiguous_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::json_sax_acceptor ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>>,false>::parse() 234 124 52.99% ['parse_json_view_fuzzer', 'parse_afl_fuzzer']
nlohmann::json_abi_v3_12_0::detail::contiguous_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::json_sax_dom_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ,true,nlohmann::json_abi_v3_12_0::detail::lexer ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ,false>>,true>::parse() 234 124 52.99% ['parse_json_view_fuzzer', 'parse_afl_fuzzer']
nlohmann::json_abi_v3_12_0::detail::contiguous_parser ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,nlohmann::json_abi_v3_12_0::detail::view::throwing_sax ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>>,true>::parse() 234 117 50.0% ['parse_json_view_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::view::builder ::slow_string(unsignedcharconst*,unsignedcharconst*) 148 6 4.054% ['parse_json_view_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::view::builder ::slow_string(unsignedcharconst*,unsignedcharconst*) 148 6 4.054% ['parse_json_view_fuzzer', 'json_view_image_fuzzer']
nlohmann::json_abi_v3_12_0::detail::binary_writer ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,unsignedchar,nlohmann::json_abi_v3_12_0::detail::output_vector_sink >>::calc_bson_value_size(nlohmann::json_abi_v3_12_0::basic_json ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>const&) 34 9 26.47% ['parse_bson_fuzzer']
nlohmann::json_abi_v3_12_0::detail::iter_impl ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>const>::set_begin() 33 14 42.42% ['parse_ubjson_fuzzer', 'parse_bjdata_fuzzer']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/json/tests/src/fuzzer_common.hpp ['parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer', 'parse_bjdata_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer'] ['parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer', 'parse_bjdata_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer']
/src/json/tests/src/fuzzer-parse_json.cpp ['parse_afl_fuzzer'] ['parse_afl_fuzzer']
/src/json/tests/../single_include/nlohmann/json_view.hpp ['json_view_image_fuzzer', 'parse_json_view_fuzzer'] []
/src/json/tests/src/fuzzer-parse_cbor.cpp ['parse_cbor_fuzzer'] ['parse_cbor_fuzzer']
/src/json/tests/../single_include/nlohmann/json.hpp ['json_view_image_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_json_view_fuzzer', 'parse_bson_fuzzer', 'parse_bjdata_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer'] []
/src/json/tests/src/fuzzer-parse_bjdata.cpp ['parse_bjdata_fuzzer'] ['parse_bjdata_fuzzer']
/src/json/tests/src/fuzzer-json_view_image.cpp ['json_view_image_fuzzer'] ['json_view_image_fuzzer']
/usr/local/bin/../include/c++/v1/__exception/exception.h ['json_view_image_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_json_view_fuzzer', 'parse_bson_fuzzer', 'parse_bjdata_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer'] []
/src/json/tests/src/fuzzer-parse_bon8.cpp ['parse_bon8_fuzzer'] ['parse_bon8_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/usr/local/lib/clang/22/include/cpuid.h ['json_view_image_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_json_view_fuzzer', 'parse_bson_fuzzer', 'parse_bjdata_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer'] []
/src/json/tests/src/fuzzer-parse_ubjson.cpp ['parse_ubjson_fuzzer'] ['parse_ubjson_fuzzer']
/src/json/tests/src/fuzzer-parse_json_view.cpp ['parse_json_view_fuzzer'] ['parse_json_view_fuzzer']
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/json/tests/src/fuzzer-parse_bson.cpp ['parse_bson_fuzzer'] ['parse_bson_fuzzer']
/src/json/tests/src/fuzzer-parse_msgpack.cpp ['parse_msgpack_fuzzer'] ['parse_msgpack_fuzzer']

Directories in report

Directory
/src/json/tests/../single_include/nlohmann/
/usr/local/bin/../include/c++/v1/__exception/
/usr/local/bin/../include/c++/v1/
/src/json/tests/src/
/usr/local/lib/clang/22/include/