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: 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 748 66.0%
gold [1:9] 8 0.70%
yellow [10:29] 0 0.0%
greenyellow [30:49] 17 1.50%
lawngreen 50+ 359 31.7%
All colors 1132 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
302 606 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_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_to (short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00606 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
149 353 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_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_to (unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00353 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
106 909 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: 00909 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
56 503 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_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_to (float&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00503 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
45 560 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_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_to (signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00560
15 1101 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>::write_bson_array(std::__1::basic_string , std::__1::allocator > const&, std::__1::vector , 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::allocator , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > > const&) call site: 01101 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIPKNS0_10basic_jsonINSt3__13mapENS5_6vectorENS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEblmdSB_NS0_14adl_serializerENS7_IhNSB_IhEEEEvEETnNS5_9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKSD_SL_
9 149 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [24], std::__1::basic_string , std::__1::allocator > >(char const (&) [24], std::__1::basic_string , std::__1::allocator >&&) call site: 00149 _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_iRKSD_SK_
8 339 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_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_bson_element_internal(unsigned long, unsigned long) call site: 00339
5 8 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::json_value(nlohmann::json_abi_v3_12_0::detail::value_t) call site: 00008 _ZN8nlohmann16json_abi_v3_12_06detail11other_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
5 58 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::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>::from_bson > const&>(std::__1::vector > const&, bool, bool) call site: 00058 __clang_call_terminate
4 348 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_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_to (unsigned short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00348
3 102 bool 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 > >::parse_error (unsigned long, std::__1::basic_string , std::__1::allocator > const&, nlohmann::json_abi_v3_12_0::detail::parse_error const&) call site: 00102

Runtime coverage analysis

Covered functions
226
Functions that are reachable but not covered
265
Reachable functions
689
Percentage of reachable functions covered
61.54%
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 1
/src/json/tests/../single_include/nlohmann/json.hpp 368
/usr/local/bin/../include/c++/v1/__exception/exception.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 672 58.7%
gold [1:9] 20 1.74%
yellow [10:29] 5 0.43%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 447 39.0%
All colors 1144 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
277 631 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_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_msgpack_internal() call site: 00631 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
106 354 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, unsigned int&) call site: 00354 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
106 909 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: 00909 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
40 461 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [17], std::__1::basic_string , std::__1::allocator >&>(char const (&) [17], std::__1::basic_string , std::__1::allocator >&) call site: 00461 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
13 333 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::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 > >::handle_value (unsigned long&) call site: 00333 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
11 149 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [24], std::__1::basic_string , std::__1::allocator > >(char const (&) [24], std::__1::basic_string , std::__1::allocator >&&) call site: 00149 _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_iRKSD_SK_
10 202 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [38], std::__1::basic_string , std::__1::allocator > >(char const (&) [38], std::__1::basic_string , std::__1::allocator >&&) call site: 00202 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
9 504 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, float&) call site: 00504 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
5 8 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::json_value(nlohmann::json_abi_v3_12_0::detail::value_t) call site: 00008 _ZN8nlohmann16json_abi_v3_12_06detail11other_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
5 58 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::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>::from_msgpack > const&>(std::__1::vector > const&, bool, bool) call site: 00058 __clang_call_terminate
5 240 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [23], std::__1::basic_string , std::__1::allocator > >(char const (&) [23], std::__1::basic_string , std::__1::allocator >&&) call site: 00240 _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_iRKSD_SK_
5 249 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 > >::end_array() call site: 00249

Runtime coverage analysis

Covered functions
243
Functions that are reachable but not covered
208
Reachable functions
671
Percentage of reachable functions covered
69.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_msgpack.cpp 1
/src/json/tests/../single_include/nlohmann/json.hpp 359
/usr/local/bin/../include/c++/v1/__exception/exception.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 660 56.0%
gold [1:9] 12 1.01%
yellow [10:29] 28 2.37%
greenyellow [30:49] 1 0.08%
lawngreen 50+ 476 40.4%
All colors 1177 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
302 606 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_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_to (short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00606 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
106 909 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: 00909 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
46 513 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_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_cbor_internal(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00513 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
45 560 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_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_to (signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00560
24 465 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_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_cbor_internal(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00465 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImhTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
16 1121 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>::write_cbor(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&) call site: 01121
10 202 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [38], std::__1::basic_string , std::__1::allocator > >(char const (&) [38], std::__1::basic_string , std::__1::allocator >&&) call site: 00202 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
6 1149 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>::write_cbor(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&) call site: 01149 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE12to_char_typeIhTnPNS4_9enable_ifIXsr3std11is_unsignedIT_EE5valueEvE4typeELPv0EEEhh
5 8 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::json_value(nlohmann::json_abi_v3_12_0::detail::value_t) call site: 00008 _ZN8nlohmann16json_abi_v3_12_06detail11other_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
5 58 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::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>::from_cbor > const&>(std::__1::vector > const&, bool, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t) call site: 00058 __clang_call_terminate
5 249 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 > >::end_array() call site: 00249
5 255 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [42], std::__1::basic_string , std::__1::allocator > >(char const (&) [42], std::__1::basic_string , std::__1::allocator >&&) call site: 00255 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_

Runtime coverage analysis

Covered functions
236
Functions that are reachable but not covered
225
Reachable functions
663
Percentage of reachable functions covered
66.06%
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 1
/src/json/tests/../single_include/nlohmann/json.hpp 355
/usr/local/bin/../include/c++/v1/__exception/exception.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 547 48.3%
gold [1:9] 15 1.32%
yellow [10:29] 4 0.35%
greenyellow [30:49] 1 0.08%
lawngreen 50+ 564 49.8%
All colors 1131 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
95 511 void nlohmann::json_abi_v3_12_0::detail::external_constructor<(nlohmann::json_abi_v3_12_0::detail::value_t)6>::construct , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >(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::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>::number_unsigned_t) call site: 00511 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS1_10position_tERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
94 979 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 > >::exception_message(nlohmann::json_abi_v3_12_0::detail::lexer_base , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >::token_type, std::__1::basic_string , std::__1::allocator > const&) call site: 00979
72 245 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::json_value(std::__1::basic_string , std::__1::allocator > const&) call site: 00245 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvE5eraseINS0_6detail9iter_implISE_EETnNS2_9enable_ifIXoosr3std7is_sameIT_SI_EE5valuesr3std7is_sameISK_NSH_IKSE_EEEE5valueEiE4typeELi0EEESK_SK_
21 407 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SI_EE5valueEiE4typeELi0EEEOT_ call site: 00407 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS1_10position_tERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
18 429 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [23], std::__1::basic_string , std::__1::allocator > >(char const (&) [23], std::__1::basic_string , std::__1::allocator >&&) call site: 00429 _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_iRKSD_SK_
17 203 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>::operator=(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>) call site: 00203 __assert_fail
16 318 unsigned long nlohmann::json_abi_v3_12_0::detail::concat_length (char const*, char const* const&) call site: 00318 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIPNS0_10basic_jsonINSt3__13mapENS5_6vectorENS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEblmdSB_NS0_14adl_serializerENS7_IhNSB_IhEEEEvEETnNS5_9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKSD_SK_
15 382 nlohmann::json_abi_v3_12_0::detail::parse_error::parse_error(int, unsigned long, char const*) call site: 00382 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SI_EE5valueEiE4typeELi0EEEOT_
13 231 nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*) call site: 00231 __cxa_throw
13 735 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [29], std::__1::basic_string , std::__1::allocator >, char const (&) [5], std::__1::basic_string , std::__1::allocator > >(char const (&) [29], std::__1::basic_string , std::__1::allocator >&&, char const (&) [5], std::__1::basic_string , std::__1::allocator >&&) call site: 00735 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
10 450 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_ call site: 00450 _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_
10 967 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::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>::parse , std::__1::allocator > const&>(std::__1::basic_string , std::__1::allocator > const&, std::__1::function , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void>&)>, bool, bool, bool) call site: 00967

Runtime coverage analysis

Covered functions
264
Functions that are reachable but not covered
218
Reachable functions
730
Percentage of reachable functions covered
70.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_json.cpp 1
/src/json/tests/../single_include/nlohmann/json.hpp 388
/usr/local/bin/../include/c++/v1/__exception/exception.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 594 41.2%
gold [1:9] 51 3.53%
yellow [10:29] 19 1.31%
greenyellow [30:49] 24 1.66%
lawngreen 50+ 753 52.2%
All colors 1441 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
148 353 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_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_to (unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00353 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
121 1113 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [39], std::__1::basic_string , std::__1::allocator > >(char const (&) [39], std::__1::basic_string , std::__1::allocator >&&) call site: 01113 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixImTnNS4_9enable_ifIXsr3std11is_unsignedIT_EE5valueEiE4typeELi0EEEvSK_bb
55 503 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_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_to (float&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00503 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
44 560 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_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_to (signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00560
25 606 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_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_to (short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00606 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
20 1072 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixIlTnNS4_9enable_ifIXaasr3std9is_signedIT_EE5valuentsr3std17is_floating_pointISK_EE5valueEiE4typeELi0EEEvSK_bb call site: 01072 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRKllTnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SJ_EE5valueEiE4typeELi0EEEOT_
10 336 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: 00336 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
9 1103 nlohmann::json_abi_v3_12_0::detail::type_error::type_error(int, char const*) call site: 01103 __cxa_throw
9 1250 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixImTnNS4_9enable_ifIXsr3std11is_unsignedIT_EE5valueEiE4typeELi0EEEvSK_bb call site: 01250 _ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixImTnNS4_9enable_ifIXsr3std11is_unsignedIT_EE5valueEiE4typeELi0EEEvSK_bb
9 1282 nlohmann::json_abi_v3_12_0::detail::iter_impl , std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const>::operator*() const call site: 01282 _ZN8nlohmann16json_abi_v3_12_06detail16invalid_iterator6createIPKNS0_10basic_jsonINSt3__13mapENS5_6vectorENS5_12basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEblmdSB_NS0_14adl_serializerENS7_IhNSB_IhEEEEvEETnNS5_9enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKSD_SL_
7 809 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 > >::skip_whitespace() call site: 00809
7 1095 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [29], std::__1::basic_string , std::__1::allocator >, char const (&) [5], std::__1::basic_string , std::__1::allocator > >(char const (&) [29], std::__1::basic_string , std::__1::allocator >&&, char const (&) [5], std::__1::basic_string , std::__1::allocator >&&) call site: 01095 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_

Runtime coverage analysis

Covered functions
331
Functions that are reachable but not covered
216
Reachable functions
804
Percentage of reachable functions covered
73.13%
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 1
/src/json/tests/../single_include/nlohmann/json.hpp 436
/usr/local/bin/../include/c++/v1/__exception/exception.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 822 57.0%
gold [1:9] 50 3.46%
yellow [10:29] 11 0.76%
greenyellow [30:49] 1 0.06%
lawngreen 50+ 557 38.6%
All colors 1441 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
148 353 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_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_to (unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*) call site: 00353 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
75 1155 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> >::dump(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, unsigned int, unsigned int) call site: 01155 __assert_fail
60 1357 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>::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) call site: 01357 _ZNK8nlohmann16json_abi_v3_12_06detail9iter_implIKNS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEEneISI_TnNS4_9enable_ifIXoosr3std7is_sameIT_SI_EE5valuesr3std7is_sameISL_NS2_ISG_EEEE5valueEDnE4typeELDn0EEEbRKSL_
54 504 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, float&) call site: 00504 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
43 561 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, signed char&) call site: 00561
33 1113 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [39], std::__1::basic_string , std::__1::allocator > >(char const (&) [39], std::__1::basic_string , std::__1::allocator >&&) call site: 01113 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
29 700 nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1 ::test(long) call site: 00700 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
24 607 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, short&) call site: 00607 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_imRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
21 263 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_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_number (nlohmann::json_abi_v3_12_0::detail::input_format_t, unsigned char&) call site: 00263 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2INS0_27byte_container_with_subtypeISD_EESH_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SJ_EE5valueEiE4typeELi0EEEOT_
17 1095 std::__1::basic_string , std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat , std::__1::allocator >, char const (&) [29], std::__1::basic_string , std::__1::allocator >, char const (&) [5], std::__1::basic_string , std::__1::allocator > >(char const (&) [29], std::__1::basic_string , std::__1::allocator >&&, char const (&) [5], std::__1::basic_string , std::__1::allocator >&&) call site: 01095 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
15 753 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_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_ubjson_size_type(std::__1::pair &, bool) call site: 00753 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_iRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
14 651 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_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_ubjson_value(unsigned long) call site: 00651 __assert_fail

Runtime coverage analysis

Covered functions
279
Functions that are reachable but not covered
286
Reachable functions
804
Percentage of reachable functions covered
64.43%
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 1
/src/json/tests/../single_include/nlohmann/json.hpp 436
/usr/local/bin/../include/c++/v1/__exception/exception.h 2

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
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>::calc_bson_array_size(std::__1::vector ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>,std::__1::allocator ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>>>const&)::{lambda(unsignedlong,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&)#1}::operator()(unsignedlong,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&)const /src/json/tests/../single_include/nlohmann/json.hpp 3 ['N/A', 'size_t', 'N/A'] 11 0 50 6 6 81 0 174 78
_ZNK8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEcvT_INS2_17basic_string_viewIcS7_EETnNS2_9enable_ifIXsr6detail11conjunctionINS0_6detail8negationINS2_10is_pointerISF_EEEENSL_INS2_7is_sameISF_DnEEEENSL_INSP_ISF_NSK_8json_refISE_EEEEEENSL_INSP_ISF_cEEEENSL_INSK_13is_basic_jsonISF_EEEENSL_INSP_ISF_St16initializer_listIcEEEEENSK_16is_detected_lazyINSK_21get_template_functionEJRKSE_SF_EEEEE5valueEiE4typeELi0EEEv /src/json/tests/../single_include/nlohmann/json.hpp 1 ['N/A'] 14 0 23 3 2 71 0 160 41

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
95.0%
692 / 726
Cyclomatic complexity statically reachable by fuzzers
99.0%
6528 / 6597

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

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

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-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=['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_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_to(short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char 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::iterator_input_adapter >, 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 > > >::get_to(unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*)', '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::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_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_to(float&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char 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::iterator_input_adapter >, 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 > > >::get_to(signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char 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>::write_bson_array(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector, 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::allocator, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> > > const&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [24], std::__1::basic_string, std::__1::allocator > >(char const (&) [24], 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 >, 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 > > >::parse_bson_element_internal(unsigned long, unsigned long)', '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::json_value(nlohmann::json_abi_v3_12_0::detail::value_t)', '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::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>::from_bson > const&>(std::__1::vector > const&, bool, bool)']

/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::iterator_input_adapter >, 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 > > >::parse_msgpack_internal()', '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_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_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, unsigned int&)', '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 >&&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [17], std::__1::basic_string, std::__1::allocator >&>(char const (&) [17], 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>* 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 > >::handle_value(unsigned long&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [24], std::__1::basic_string, std::__1::allocator > >(char const (&) [24], 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 (&) [38], std::__1::basic_string, std::__1::allocator > >(char const (&) [38], std::__1::basic_string, std::__1::allocator >&&)', '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_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_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, float&)', '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::json_value(nlohmann::json_abi_v3_12_0::detail::value_t)', '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::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>::from_msgpack > const&>(std::__1::vector > const&, bool, bool)']

/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=['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_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_to(short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*)', '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 >, 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 > > >::parse_cbor_internal(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_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_to(signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, 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_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_cbor_internal(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)', '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>::write_cbor(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&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [38], std::__1::basic_string, std::__1::allocator > >(char const (&) [38], std::__1::basic_string, std::__1::allocator >&&)', '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>::write_cbor(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>::json_value::json_value(nlohmann::json_abi_v3_12_0::detail::value_t)', '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::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>::from_cbor > const&>(std::__1::vector > const&, bool, bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t)']

/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=['void nlohmann::json_abi_v3_12_0::detail::external_constructor<(nlohmann::json_abi_v3_12_0::detail::value_t)6>::construct, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >(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::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>::number_unsigned_t)', '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 > >::exception_message(nlohmann::json_abi_v3_12_0::detail::lexer_base, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> >::token_type, std::__1::basic_string, 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::json_value(std::__1::basic_string, std::__1::allocator > const&)', '_ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC2IRSA_SA_TnNS2_9enable_ifIXaantsr6detail13is_basic_jsonIT0_EE5valuesr6detail18is_compatible_typeISE_SI_EE5valueEiE4typeELi0EEEOT_', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [23], std::__1::basic_string, std::__1::allocator > >(char const (&) [23], 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>::operator=(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>)', 'unsigned long nlohmann::json_abi_v3_12_0::detail::concat_length(char const*, char const* const&)', 'nlohmann::json_abi_v3_12_0::detail::parse_error::parse_error(int, unsigned long, char const*)', 'nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [29], std::__1::basic_string, std::__1::allocator >, char const (&) [5], std::__1::basic_string, std::__1::allocator > >(char const (&) [29], std::__1::basic_string, std::__1::allocator >&&, char const (&) [5], std::__1::basic_string, std::__1::allocator >&&)']

/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=['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_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_to(unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [39], std::__1::basic_string, std::__1::allocator > >(char const (&) [39], std::__1::basic_string, std::__1::allocator >&&)', '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_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_to(float&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char 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::iterator_input_adapter >, 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 > > >::get_to(signed char&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char 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::iterator_input_adapter >, 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 > > >::get_to(short&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*)', '_ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixIlTnNS4_9enable_ifIXaasr3std9is_signedIT_EE5valuentsr3std17is_floating_pointISK_EE5valueEiE4typeELi0EEEvSK_bb', '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::type_error::type_error(int, char const*)', '_ZN8nlohmann16json_abi_v3_12_06detail13binary_writerINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEhE31write_number_with_ubjson_prefixImTnNS4_9enable_ifIXsr3std11is_unsignedIT_EE5valueEiE4typeELi0EEEvSK_bb', 'nlohmann::json_abi_v3_12_0::detail::iter_impl, std::__1::allocator >, bool, long, unsigned long, double, std::__1::allocator, nlohmann::json_abi_v3_12_0::adl_serializer, std::__1::vector >, void> const>::operator*() const']

/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=['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_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_to(unsigned int&, nlohmann::json_abi_v3_12_0::detail::input_format_t, char const*)', '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> >::dump(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, unsigned int, unsigned int)', '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>::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)', '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_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_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, float&)', '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_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_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, signed char&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [39], std::__1::basic_string, std::__1::allocator > >(char const (&) [39], std::__1::basic_string, std::__1::allocator >&&)', 'nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1::test(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 >, 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 > > >::get_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, short&)', '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_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_number(nlohmann::json_abi_v3_12_0::detail::input_format_t, unsigned char&)', 'std::__1::basic_string, std::__1::allocator > nlohmann::json_abi_v3_12_0::detail::concat, std::__1::allocator >, char const (&) [29], std::__1::basic_string, std::__1::allocator >, char const (&) [5], std::__1::basic_string, std::__1::allocator > >(char const (&) [29], std::__1::basic_string, std::__1::allocator >&&, char const (&) [5], std::__1::basic_string, std::__1::allocator >&&)']

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) 60 24 40.0% ['parse_bson_fuzzer', 'parse_msgpack_fuzzer', 'parse_cbor_fuzzer', 'parse_bjdata_fuzzer', 'parse_ubjson_fuzzer', 'parse_afl_fuzzer']
nlohmann::json_abi_v3_12_0::detail::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 >::parse(bool,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>&) 40 16 40.0% ['parse_afl_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(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&,bool,bool,unsignedint,unsignedint) 215 99 46.04% ['parse_afl_fuzzer', 'parse_bjdata_fuzzer', 'parse_ubjson_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_escaped(std::__1::basic_string ,std::__1::allocator >const&,bool) 188 90 47.87% ['parse_afl_fuzzer', 'parse_bjdata_fuzzer', 'parse_ubjson_fuzzer']
nlohmann::json_abi_v3_12_0::detail::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 >>::parse(bool,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>&) 40 11 27.50% ['parse_afl_fuzzer']
boolnlohmann::json_abi_v3_12_0::detail::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 >>::sax_parse_internal ,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 >>>(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 >>*) 230 125 54.34% ['parse_afl_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-parse_msgpack.cpp ['parse_msgpack_fuzzer'] ['parse_msgpack_fuzzer']
/usr/local/bin/../include/c++/v1/__exception/exception.h ['parse_bson_fuzzer', 'parse_msgpack_fuzzer', 'parse_cbor_fuzzer', 'parse_afl_fuzzer', 'parse_bjdata_fuzzer', 'parse_ubjson_fuzzer'] []
/src/json/tests/src/fuzzer-parse_bson.cpp ['parse_bson_fuzzer'] ['parse_bson_fuzzer']
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/json/tests/src/fuzzer-parse_cbor.cpp ['parse_cbor_fuzzer'] ['parse_cbor_fuzzer']
/src/json/tests/src/fuzzer-parse_bjdata.cpp ['parse_bjdata_fuzzer'] ['parse_bjdata_fuzzer']
/src/json/tests/../single_include/nlohmann/json.hpp ['parse_bson_fuzzer', 'parse_msgpack_fuzzer', 'parse_cbor_fuzzer', 'parse_afl_fuzzer', 'parse_bjdata_fuzzer', 'parse_ubjson_fuzzer'] []
/src/json/tests/src/fuzzer-parse_ubjson.cpp ['parse_ubjson_fuzzer'] ['parse_ubjson_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/src/json/tests/src/fuzzer-parse_json.cpp ['parse_afl_fuzzer'] ['parse_afl_fuzzer']

Directories in report

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