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_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 2530 71.4%
gold [1:9] 4 0.11%
yellow [10:29] 11 0.31%
greenyellow [30:49] 4 0.11%
lawngreen 50+ 992 28.0%
All colors 3541 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
272 2582 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_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_number (float&) call site: 02582
270 1977 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_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_number (float&) call site: 01977
270 3185 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_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_number (float&) call site: 03185
217 640 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 (float&) call site: 00640 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERA10_KcJS9_RA41_SA_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSG_OSH_DpOT1_
171 945 nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long) call site: 00945 __assert_fail
101 469 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: 00469 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERPKcJRA42_SA_SC_RA16_SA_S9_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSI_OSJ_DpOT1_
101 1117 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: 01117 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
89 2450 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_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 > > >::emit_unsigned (unsigned long) call site: 02450
87 1848 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_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> >::emit_unsigned (unsigned long) call site: 01848
87 3056 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_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> >::emit_unsigned (unsigned long) call site: 03056
45 860 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: 00860 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
33 906 nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ::bulk_remaining() const call site: 00906 __assert_fail

Runtime coverage analysis

Covered functions
551
Functions that are reachable but not covered
1359
Reachable functions
2531
Percentage of reachable functions covered
46.31%
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 1292
/usr/local/bin/../include/c++/v1/__exception/exception.h 2

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 2651 73.6%
gold [1:9] 0 0.0%
yellow [10:29] 6 0.16%
greenyellow [30:49] 8 0.22%
lawngreen 50+ 935 25.9%
All colors 3600 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
476 2512 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_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 > > >::bson_unsupported_type_error(unsigned long, unsigned long) const call site: 02512
471 1910 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_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> >::bson_unsupported_type_error(unsigned long, int) const call site: 01910
471 3118 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_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> >::bson_unsupported_type_error(unsigned long, int) const call site: 03118
247 610 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: 00610 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERA5_KcJS9_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSE_OSF_DpOT1_
191 1117 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: 01117 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
171 945 nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long) call site: 00945 __assert_fail
139 469 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: 00469 _ZN8nlohmann16json_abi_v3_12_06detail12out_of_range6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
45 860 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: 00860 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
33 906 nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ::bulk_remaining() const call site: 00906 __assert_fail
25 157 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::free_container(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: 00157 __assert_fail
19 1498 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_scalar(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: 01498 __assert_fail
18 1518 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_internal(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, unsigned long) call site: 01518 __assert_fail

Runtime coverage analysis

Covered functions
605
Functions that are reachable but not covered
1253
Reachable functions
2579
Percentage of reachable functions covered
51.42%
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 1319
/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 889 37.3%
gold [1:9] 2 0.08%
yellow [10:29] 13 0.54%
greenyellow [30:49] 8 0.33%
lawngreen 50+ 1469 61.6%
All colors 2381 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
76 426 nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, char const*) call site: 00426 _ZN8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvE29create_object_with_comparatorINS2_13move_iteratorINS2_11__wrap_iterIPNS2_4pairISA_SE_EEEEEETnNS2_9enable_ifIXsr6detail39is_comparator_constructible_object_typeINS3_ISA_SE_NS2_4lessISA_EENS8_INSI_IKSA_SE_EEEEEET_EE5valueEiE4typeELi0EEEPST_RKST_SU_SU_
61 1274 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 >::scan_expecting(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) call site: 01274
61 1588 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>::scan_expecting(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) call site: 01588
61 1866 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 > >::scan_expecting(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) call site: 01866
61 2147 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>::scan_expecting(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) call site: 02147
58 859 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_scalar(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: 00859 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
28 601 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 >::scan_expecting(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) call site: 00601
28 689 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: 00689 __assert_fail
19 386 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: 00386 __assert_fail
18 1033 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_internal(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, unsigned long) call site: 01033 __assert_fail
17 361 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 >::parse_dom , std::__1::allocator >, bool, long, unsigned 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_callback_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) call site: 00361 __assert_fail
17 921 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_scalar(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: 00921 _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_

Runtime coverage analysis

Covered functions
712
Functions that are reachable but not covered
432
Reachable functions
1923
Percentage of reachable functions covered
77.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_json.cpp 10
/src/json/tests/src/fuzzer_common.hpp 17
/src/json/tests/../single_include/nlohmann/json.hpp 965
/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 2258 63.6%
gold [1:9] 42 1.18%
yellow [10:29] 13 0.36%
greenyellow [30:49] 16 0.45%
lawngreen 50+ 1220 34.3%
All colors 3549 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
343 2594 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_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 > > >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, bool&) call site: 02594
341 1989 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_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> >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, bool&) call site: 01989
341 3197 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_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> >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, bool&) call site: 03197
213 644 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_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, bool&) call site: 00644 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERA10_KcJS9_RA41_SA_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSG_OSH_DpOT1_
191 1117 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: 01117 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
171 945 nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long) call site: 00945 __assert_fail
79 860 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: 00860 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
18 1518 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_internal(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, unsigned long) call site: 01518 __assert_fail
17 1376 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: 01376 _ZN8nlohmann16json_abi_v3_12_06detail10type_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idERKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
15 1670 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_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&, unsigned long) call site: 01670
14 424 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: 00424
14 1359 void 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_string >(std::__1::array const&, unsigned long, unsigned long) call site: 01359 __assert_fail

Runtime coverage analysis

Covered functions
776
Functions that are reachable but not covered
961
Reachable functions
2519
Percentage of reachable functions covered
61.85%
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 1284
/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 2297 63.9%
gold [1:9] 18 0.50%
yellow [10:29] 11 0.30%
greenyellow [30:49] 4 0.11%
lawngreen 50+ 1264 35.1%
All colors 3594 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
238 2137 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_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> >::parse_msgpack_value() call site: 02137
238 2744 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_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 > > >::parse_msgpack_value() call site: 02744
238 3345 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_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> >::parse_msgpack_value() call site: 03345
191 1117 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: 01117 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
171 945 nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long) call site: 00945 __assert_fail
90 767 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_value() call site: 00767 _ZN8nlohmann16json_abi_v3_12_06detail11concat_intoINSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERA10_KcJS9_RA41_SA_ETnNS3_9enable_ifIXsr24detect_string_can_appendIT_T0_EE5valueEiE4typeELi0EEEvRSG_OSH_DpOT1_
79 860 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: 00860 _ZN8nlohmann16json_abi_v3_12_06detail11parse_error6createIDnTnNSt3__19enable_ifIXsr21is_basic_json_contextIT_EE5valueEiE4typeELi0EEES2_NS1_12exception_idEmRKNS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEES6_
38 1932 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_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_number (unsigned int&) call site: 01932
38 2536 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_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_number (unsigned int&) call site: 02536
38 3140 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_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_number (unsigned int&) call site: 03140
30 520 nlohmann::json_abi_v3_12_0::detail::value_in_range_of_impl1 ::test(unsigned int) call site: 00520 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castIllTnNSt3__19enable_ifIXsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
28 571 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 > >::enter_array(unsigned long, unsigned long) call site: 00571 _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
778
Functions that are reachable but not covered
940
Reachable functions
2557
Percentage of reachable functions covered
63.24%
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 1307
/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 2259 58.4%
gold [1:9] 17 0.43%
yellow [10:29] 10 0.25%
greenyellow [30:49] 19 0.49%
lawngreen 50+ 1562 40.3%
All colors 3867 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
88 1218 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_ubjson_internal() call site: 01218 __assert_fail
79 1879 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++() call site: 01879 _ZNK8nlohmann16json_abi_v3_12_010basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEblmdS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvE3getImmEEDTcldtclL_ZNS2_7declvalB8ne220000IRKSE_EEDTclsr3stdE9__declvalIT_ELi0EEEvEE8get_implIT0_EtlNS0_6detail12priority_tagILj4EEEEEEv
76 1787 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: 01787 _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
73 2573 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_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> >::parse_ubjson_internal() call site: 02573
73 3180 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_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 > > >::parse_ubjson_internal() call site: 03180
73 3781 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_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> >::parse_ubjson_internal() call site: 03781
68 2797 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_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_string (unsigned char, std::__1::basic_string , std::__1::allocator >&) call site: 02797
66 2195 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_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_string (unsigned char, std::__1::basic_string , std::__1::allocator >&) call site: 02195
66 3403 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_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_string (unsigned char, std::__1::basic_string , std::__1::allocator >&) call site: 03403
49 640 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 (float&) call site: 00640 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImjTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
45 2303 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_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_number (float&) call site: 02303
45 2908 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_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_number (float&) call site: 02908

Runtime coverage analysis

Covered functions
900
Functions that are reachable but not covered
1005
Reachable functions
2805
Percentage of reachable functions covered
64.17%
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 1452
/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 1807 46.6%
gold [1:9] 42 1.08%
yellow [10:29] 10 0.25%
greenyellow [30:49] 2 0.05%
lawngreen 50+ 2014 51.9%
All colors 3875 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
88 1218 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_ubjson_internal() call site: 01218 __assert_fail
73 2582 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_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> >::parse_ubjson_internal() call site: 02582
73 3188 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_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 > > >::parse_ubjson_internal() call site: 03188
73 3789 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_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> >::parse_ubjson_internal() call site: 03789
50 639 unsigned long nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ::get_elements (float*, unsigned long) call site: 00639 _ZN8nlohmann16json_abi_v3_12_06detail23conditional_static_castImjTnNSt3__19enable_ifIXntsr3std7is_sameIT_T0_EE5valueEiE4typeELi0EEES5_S6_
46 2311 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_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_to (float&, char const*) call site: 02311
46 2915 unsigned long nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter , std::__1::__list_const_iterator >::get_elements (float*, unsigned long) call site: 02915
46 3518 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_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_to (float&, char const*) call site: 03518
45 2218 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_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_string (unsigned long, std::__1::basic_string , std::__1::allocator >&) call site: 02218
45 2821 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_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_string (unsigned long, std::__1::basic_string , std::__1::allocator >&) call site: 02821
45 3425 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_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_string (unsigned long, std::__1::basic_string , std::__1::allocator >&) call site: 03425
43 692 unsigned long nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter ::get_elements (signed char*, unsigned long) call site: 00692

Runtime coverage analysis

Covered functions
1095
Functions that are reachable but not covered
666
Reachable functions
2809
Percentage of reachable functions covered
76.29%
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 1453
/usr/local/bin/../include/c++/v1/__exception/exception.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-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=['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_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_number(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::input_stream_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::input_stream_adapter> >::get_number(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::file_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::file_input_adapter> >::get_number(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(float&)', 'nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long)', '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 >&&)', '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, std::__1::__list_const_iterator >, 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, std::__1::__list_const_iterator > > >::emit_unsigned(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::input_stream_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::input_stream_adapter> >::emit_unsigned(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::file_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::file_input_adapter> >::emit_unsigned(unsigned long)']

/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::iterator_input_adapter, std::__1::__list_const_iterator >, 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, std::__1::__list_const_iterator > > >::bson_unsupported_type_error(unsigned long, unsigned long) 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_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> >::bson_unsupported_type_error(unsigned long, int) 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::file_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::file_input_adapter> >::bson_unsupported_type_error(unsigned long, int) const', '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 >&&)', 'nlohmann::json_abi_v3_12_0::detail::scalar_string_bulk_run(unsigned char const*, unsigned long)', '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 >&&)', '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 >&&)', 'nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter::bulk_remaining() 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::free_container(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>&)']

/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=['nlohmann::json_abi_v3_12_0::detail::out_of_range::out_of_range(int, 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::iterator_input_adapter >::scan_expecting(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)', '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>::scan_expecting(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)', '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 > >::scan_expecting(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)', '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>::scan_expecting(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)', '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_scalar(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)', '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 >::scan_expecting(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)', '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::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>)', '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_internal(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, unsigned long)']

/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::iterator_input_adapter, std::__1::__list_const_iterator >, 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, std::__1::__list_const_iterator > > >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, 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_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> >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, 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_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> >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, 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 > >::parse_cbor_value(bool, nlohmann::json_abi_v3_12_0::detail::cbor_tag_handler_t, bool&, bool&)', '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::scalar_string_bulk_run(unsigned char const*, unsigned long)', '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 >&&)', '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_internal(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, unsigned long)', '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 >&&)', '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_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&, unsigned long)']

/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::input_stream_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::input_stream_adapter> >::parse_msgpack_value()', '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_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 > > >::parse_msgpack_value()', '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_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> >::parse_msgpack_value()', '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::scalar_string_bulk_run(unsigned char const*, unsigned long)', '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_value()', '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 >&&)', '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_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_number(unsigned int&)', '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_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_number(unsigned int&)', '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_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_number(unsigned int&)']

/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::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_ubjson_internal()', '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++()', '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)', '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_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> >::parse_ubjson_internal()', '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_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 > > >::parse_ubjson_internal()', '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_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> >::parse_ubjson_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, std::__1::__list_const_iterator >, 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, std::__1::__list_const_iterator > > >::get_string(unsigned char, 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::input_stream_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::input_stream_adapter> >::get_string(unsigned char, 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::file_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::file_input_adapter> >::get_string(unsigned char, 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(float&)']

/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::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_ubjson_internal()', '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_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> >::parse_ubjson_internal()', '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_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 > > >::parse_ubjson_internal()', '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_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> >::parse_ubjson_internal()', 'unsigned long nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter::get_elements(float*, 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::input_stream_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::input_stream_adapter> >::get_to(float&, char const*)', 'unsigned long nlohmann::json_abi_v3_12_0::detail::iterator_input_adapter, std::__1::__list_const_iterator >::get_elements(float*, 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::file_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::file_input_adapter> >::get_to(float&, 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::input_stream_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::input_stream_adapter> >::get_string(unsigned long, 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, std::__1::__list_const_iterator >, 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, std::__1::__list_const_iterator > > >::get_string(unsigned long, 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
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&) 212 111 52.35% ['parse_msgpack_fuzzer', 'parse_afl_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer']
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_msgpack_fuzzer', 'parse_afl_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer']
nlohmann::json_abi_v3_12_0::detail::binary_reader ,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::input_stream_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::input_stream_adapter>>::parse_bson_internal() 46 25 54.34% ['parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer']
nlohmann::json_abi_v3_12_0::detail::binary_reader ,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 ,std::__1::__list_const_iterator >,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 ,std::__1::__list_const_iterator >>>::parse_bson_internal() 46 25 54.34% ['parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', 'parse_bson_fuzzer']
nlohmann::json_abi_v3_12_0::detail::binary_reader ,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::file_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::file_input_adapter>>::parse_bson_internal() 46 25 54.34% ['parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer', 'parse_bon8_fuzzer', 'parse_cbor_fuzzer', '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_bjdata_fuzzer', 'parse_ubjson_fuzzer']
_ZN8nlohmann16json_abi_v3_12_06detail20get_arithmetic_valueINS0_10basic_jsonINSt3__13mapENS4_6vectorENS4_12basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEblmdSA_NS0_14adl_serializerENS6_IhNSA_IhEEEEvEEdTnNS4_9enable_ifIXaasr3std13is_arithmeticIT0_EE5valuentsr3std7is_sameISI_NT_9boolean_tEEE5valueEiE4typeELi0EEEvRKSJ_RSI_ 31 9 29.03% ['parse_bjdata_fuzzer', 'parse_ubjson_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_bon8.cpp ['parse_bon8_fuzzer'] ['parse_bon8_fuzzer']
/usr/local/bin/../include/c++/v1/string [] []
/src/json/tests/src/fuzzer-parse_json.cpp ['parse_afl_fuzzer'] ['parse_afl_fuzzer']
/src/json/tests/src/fuzzer-parse_ubjson.cpp ['parse_ubjson_fuzzer'] ['parse_ubjson_fuzzer']
/usr/local/bin/../include/c++/v1/stdexcept [] []
/usr/local/bin/../include/c++/v1/__exception/exception.h ['parse_bon8_fuzzer', 'parse_bson_fuzzer', 'parse_afl_fuzzer', 'parse_cbor_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer'] []
/src/json/tests/../single_include/nlohmann/json.hpp ['parse_bon8_fuzzer', 'parse_bson_fuzzer', 'parse_afl_fuzzer', 'parse_cbor_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer'] []
/src/json/tests/src/fuzzer-parse_msgpack.cpp ['parse_msgpack_fuzzer'] ['parse_msgpack_fuzzer']
/src/json/tests/src/fuzzer_common.hpp ['parse_bon8_fuzzer', 'parse_bson_fuzzer', 'parse_afl_fuzzer', 'parse_cbor_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer'] ['parse_bon8_fuzzer', 'parse_bson_fuzzer', 'parse_afl_fuzzer', 'parse_cbor_fuzzer', 'parse_msgpack_fuzzer', 'parse_ubjson_fuzzer', 'parse_bjdata_fuzzer']
/src/json/tests/src/fuzzer-parse_bson.cpp ['parse_bson_fuzzer'] ['parse_bson_fuzzer']
/src/json/tests/src/fuzzer-parse_bjdata.cpp ['parse_bjdata_fuzzer'] ['parse_bjdata_fuzzer']
/src/json/tests/src/fuzzer-parse_cbor.cpp ['parse_cbor_fuzzer'] ['parse_cbor_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/