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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
fuzz_bson_encoder /src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 182 132 8 17 785 399 fuzz_bson_encoder.cpp
fuzz_ubjson_encoder /src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 175 131 8 14 742 446 fuzz_ubjson_encoder.cpp
fuzz_bigint /src/jsoncons/./fuzzers/fuzz_bigint.cpp 163 7 11 4 728 413 fuzz_bigint.cpp
fuzz_json_parser_max /src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 234 102 10 13 1858 652 fuzz_json_parser_max.cpp
fuzz_json_cursor /src/jsoncons/./fuzzers/fuzz_json_cursor.cpp 328 168 12 23 2434 989 fuzz_json_cursor.cpp
fuzz_msgpack_parser_max /src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 311 227 12 15 1372 739 fuzz_msgpack_parser_max.cpp
fuzz_json_encoder /src/jsoncons/./fuzzers/fuzz_json_encoder.cpp 273 310 10 16 1956 744 fuzz_json_encoder.cpp
fuzz_ubjson_parser_max /src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 164 96 8 12 720 426 fuzz_ubjson_parser_max.cpp
fuzz_bson_parser_max /src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 171 94 8 15 765 381 fuzz_bson_parser_max.cpp
fuzz_msgpack_encoder /src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 328 287 12 17 1389 763 fuzz_msgpack_encoder.cpp
fuzz_cbor_parser_max /src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 626 427 14 22 4322 2432 fuzz_cbor_parser_max.cpp
fuzz_bson /src/jsoncons/./fuzzers/fuzz_bson.cpp 326 735 10 26 1070 643 fuzz_bson.cpp
fuzz_ubjson /src/jsoncons/./fuzzers/fuzz_ubjson.cpp 319 740 10 23 1025 688 fuzz_ubjson.cpp
fuzz_msgpack /src/jsoncons/./fuzzers/fuzz_msgpack.cpp 472 863 14 25 1684 1007 fuzz_msgpack.cpp
fuzz_parse /src/jsoncons/./fuzzers/fuzz_parse.cpp 302 694 10 16 1900 742 fuzz_parse.cpp
fuzz_cbor_encoder /src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 659 539 14 24 4400 2489 fuzz_cbor_encoder.cpp
fuzz_csv /src/jsoncons/./fuzzers/fuzz_csv.cpp 483 770 15 23 3500 1641 fuzz_csv.cpp
fuzz_cbor /src/jsoncons/./fuzzers/fuzz_cbor.cpp 797 1065 16 31 4644 2713 fuzz_cbor.cpp

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: fuzz_bson_encoder

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 22 12.0%
gold [1:9] 5 2.74%
yellow [10:29] 1 0.54%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 154 84.6%
All colors 182 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
6 39 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00039 __cxa_end_catch
3 175 LLVMFuzzerTestOneInput call site: 00175
2 11 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00019
2 22 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00022
2 29 LLVMFuzzerTestOneInput call site: 00029
2 57 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00057 __clang_call_terminate
1 5 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00005
1 9 jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::bson::bson_encode_options const&, std::__1::allocator const&) call site: 00009
1 17 jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00017

Runtime coverage analysis

Covered functions
126
Functions that are reachable but not covered
32
Reachable functions
182
Percentage of reachable functions covered
82.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/jsoncons/./fuzzers/fuzz_bson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 17
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_ubjson_encoder

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 23 11.5%
gold [1:9] 0 0.0%
yellow [10:29] 7 3.50%
greenyellow [30:49] 3 1.5%
lawngreen 50+ 167 83.5%
All colors 200 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
6 40 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00040 __cxa_end_catch
3 193 LLVMFuzzerTestOneInput call site: 00193
2 11 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00019
2 22 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00022
2 30 LLVMFuzzerTestOneInput call site: 00030
2 187 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00187 __clang_call_terminate
1 5 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00005
1 9 jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::ubjson::ubjson_encode_options const&, std::__1::allocator const&) call site: 00009
1 17 jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00017
1 130 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00130

Runtime coverage analysis

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

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 10
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 1
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_bigint

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 92 26.4%
gold [1:9] 11 3.16%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 245 70.4%
All colors 348 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
36 133 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00133
10 108 jsoncons::basic_bigint >::get_storage_view() const call site: 00108
10 234 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00234 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
6 326 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00326
5 271 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00271
3 26 jsoncons::detail::bigint_storage >::allocated_storage::reserve(unsigned long, std::__1::allocator const&) call site: 00026 __clang_call_terminate
3 100 jsoncons::detail::bigint_storage >::allocated_storage::allocated_storage(jsoncons::detail::bigint_storage >::allocated_storage const&, std::__1::allocator const&) call site: 00100 __clang_call_terminate
3 104 jsoncons::basic_bigint >::set_negative(bool) call site: 00104
3 186 jsoncons::to_bigint_result jsoncons::to_bigint >(char const*, unsigned long, jsoncons::basic_bigint >&, std::__1::allocator const&) call site: 00186 __cxa_allocate_exception
2 4 jsoncons::basic_bigint >::basic_bigint (char const*, std::__1::allocator const&) call site: 00004
2 36 jsoncons::detail::bigint_storage >::allocated_storage::round_up(unsigned long) call site: 00036
2 84 _ZN8jsoncons6detail14bigint_storageINSt3__19allocatorImEEEC2ImEET_RKS4_PNS2_9enable_ifIXsr3std11is_integralIS7_EE5valueEvE4typeE call site: 00084

Runtime coverage analysis

Covered functions
75
Functions that are reachable but not covered
17
Reachable functions
163
Percentage of reachable functions covered
89.57%
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/jsoncons/./fuzzers/fuzz_bigint.cpp 1
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 78
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 1

Fuzzer: fuzz_json_parser_max

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 59 19.0%
gold [1:9] 2 0.64%
yellow [10:29] 1 0.32%
greenyellow [30:49] 6 1.93%
lawngreen 50+ 242 78.0%
All colors 310 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
5 293 jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&) call site: 00293
4 126 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00126
4 269 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00269 __cxa_allocate_exception
3 13 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00013
3 56 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00056 __cxa_end_catch
3 98 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00098
3 110 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00110
3 165 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00165
3 169 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00169
2 10 jsoncons::json_source_adaptor > >::json_source_adaptor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00010
2 34 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::basic_json_decode_options const&, std::__1::allocator const&) call site: 00034
2 40 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, std::__1::allocator const&) call site: 00040

Runtime coverage analysis

Covered functions
120
Functions that are reachable but not covered
30
Reachable functions
234
Percentage of reachable functions covered
87.18%
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/jsoncons/./fuzzers/fuzz_json_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 11
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 10
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_json_cursor

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 171 41.2%
gold [1:9] 17 4.09%
yellow [10:29] 6 1.44%
greenyellow [30:49] 2 0.48%
lawngreen 50+ 219 52.7%
All colors 415 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
49 210 jsoncons::basic_json_parser >::parse_false(char const*, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00210
30 353 void jsoncons::prettify_string , std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string , std::__1::allocator >&) call site: 00353 snprintf
18 313 jsoncons::write_double::write_double(jsoncons::float_chars_format, int) call site: 00313 ldexp
9 161 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00161
8 294 _ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr10ext_traits9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE call site: 00294 _ZN8jsoncons15bytes_to_stringIPKhNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS3_9enable_ifIXaasr3std7is_sameINS3_15iterator_traitsIT_E10value_typeEhEE5valuesr10ext_traits9is_stringIT0_EE5valueEmE4typeESC_SC_NS_12semantic_tagERSF_
8 392 bool jsoncons::dtoa_general , std::__1::allocator > >(double, char, std::__1::basic_string , std::__1::allocator >&, std::__1::integral_constant ) call site: 00392 __cxa_allocate_exception
4 124 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00124
4 267 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00267 __cxa_allocate_exception
3 52 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00052 __cxa_end_catch
3 96 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00096
3 108 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00108
2 5 jsoncons::basic_json_cursor >, std::__1::allocator >::basic_json_cursor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, std::__1::error_code&) call site: 00005

Runtime coverage analysis

Covered functions
153
Functions that are reachable but not covered
62
Reachable functions
328
Percentage of reachable functions covered
81.1%
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/jsoncons/./fuzzers/fuzz_json_cursor.cpp 1
/src/jsoncons/./include/jsoncons/json_cursor.hpp 10
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/staj_cursor.hpp 5
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 4
/src/jsoncons/./include/jsoncons/source.hpp 10
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/staj_event.hpp 7
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 10
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/detail/make_obj_using_allocator.hpp 3
/src/jsoncons/./include/jsoncons/utility/conversion.hpp 1
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 4
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 15
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1
/src/jsoncons/./include/jsoncons/detail/grisu3.hpp 12

Fuzzer: fuzz_msgpack_parser_max

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 122 23.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 407 76.9%
All colors 529 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
16 448 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00448
15 276 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00276
14 372 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00372 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
11 397 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00397
6 41 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00041 __cxa_end_catch
6 426 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00426
5 262 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00262
5 442 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00442 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 339 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00339 __cxa_allocate_exception
4 523 LLVMFuzzerTestOneInput call site: 00523
3 244 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00244
2 9 jsoncons::msgpack::basic_msgpack_parser >, std::__1::allocator >::basic_msgpack_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::msgpack::msgpack_decode_options const&, std::__1::allocator const&) call site: 00009

Runtime coverage analysis

Covered functions
230
Functions that are reachable but not covered
38
Reachable functions
311
Percentage of reachable functions covered
87.78%
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/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 16
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 1

Fuzzer: fuzz_json_encoder

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 61 18.1%
gold [1:9] 1 0.29%
yellow [10:29] 2 0.59%
greenyellow [30:49] 4 1.18%
lawngreen 50+ 269 79.8%
All colors 337 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
5 317 jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&) call site: 00317
4 150 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00150
4 293 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00293 __cxa_allocate_exception
3 37 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00037
3 80 jsoncons::stream_source >::fill_buffer(char*, unsigned long) call site: 00080 __cxa_end_catch
3 122 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00122
3 134 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00134
3 189 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00189
3 193 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00193
2 34 jsoncons::json_source_adaptor > >::json_source_adaptor , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00034
2 64 jsoncons::basic_json_reader >, std::__1::allocator >::basic_json_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, std::__1::allocator const&) call site: 00064
2 108 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00108

Runtime coverage analysis

Covered functions
197
Functions that are reachable but not covered
33
Reachable functions
273
Percentage of reachable functions covered
87.91%
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/jsoncons/./fuzzers/fuzz_json_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons/json_encoder.hpp 3
/src/jsoncons/./include/jsoncons/json_options.hpp 29
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 1
/src/jsoncons/./include/jsoncons/json_reader.hpp 7
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 5
/src/jsoncons/./include/jsoncons/source.hpp 11
/src/jsoncons/./include/jsoncons/json_parser.hpp 34
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 7
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 10
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_ubjson_parser_max

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 27 14.2%
gold [1:9] 14 7.36%
yellow [10:29] 8 4.21%
greenyellow [30:49] 35 18.4%
lawngreen 50+ 106 55.7%
All colors 190 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
6 30 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00030 __cxa_end_catch
3 183 LLVMFuzzerTestOneInput call site: 00183
2 9 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00009
2 12 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00012
2 20 LLVMFuzzerTestOneInput call site: 00020
2 58 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::read_value(jsoncons::basic_json_visitor &, unsigned char, std::__1::error_code&) call site: 00058
2 61 std::__1::enable_if ::type jsoncons::binary::big_to_native (unsigned char const*, unsigned long) call site: 00061 _ZN8jsoncons6binary9byte_swapIjEENSt3__19enable_ifIXaasr3std11is_integralIT_EE5valueeqstS4_Lm4EES4_E4typeES4_
2 177 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00177 __clang_call_terminate
2 187 LLVMFuzzerTestOneInput call site: 00187
1 7 jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&) call site: 00007
1 120 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::begin_array(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00120
1 166 jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00166

Runtime coverage analysis

Covered functions
88
Functions that are reachable but not covered
30
Reachable functions
164
Percentage of reachable functions covered
81.71%
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/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 20
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 7
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 1
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1

Fuzzer: fuzz_bson_parser_max

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 20 11.6%
gold [1:9] 5 2.90%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 147 85.4%
All colors 172 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
6 29 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00029 __cxa_end_catch
3 165 LLVMFuzzerTestOneInput call site: 00165
2 9 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00009
2 12 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00012
2 19 LLVMFuzzerTestOneInput call site: 00019
2 47 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00047 __clang_call_terminate
2 169 LLVMFuzzerTestOneInput call site: 00169
1 7 jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::basic_json_visitor &, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00007

Runtime coverage analysis

Covered functions
90
Functions that are reachable but not covered
31
Reachable functions
171
Percentage of reachable functions covered
81.87%
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/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 19
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 13
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 18
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5

Fuzzer: fuzz_msgpack_encoder

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 108 19.9%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 433 80.0%
All colors 541 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
16 458 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00458
15 286 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00286
11 407 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00407
6 51 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00051 __cxa_end_catch
6 436 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00436
5 272 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00272
4 349 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00349 __cxa_allocate_exception
4 533 LLVMFuzzerTestOneInput call site: 00533
3 254 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00254
3 452 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00452 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
2 11 jsoncons::msgpack::basic_msgpack_encoder >, void>, std::__1::allocator >::basic_msgpack_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&) call site: 00011
2 19 jsoncons::msgpack::basic_msgpack_parser >, std::__1::allocator >::basic_msgpack_parser , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&, jsoncons::msgpack::msgpack_decode_options const&, std::__1::allocator const&) call site: 00019

Runtime coverage analysis

Covered functions
264
Functions that are reachable but not covered
42
Reachable functions
328
Percentage of reachable functions covered
87.2%
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/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 9
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 10
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 16
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 1

Fuzzer: fuzz_cbor_parser_max

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 183 17.2%
gold [1:9] 8 0.75%
yellow [10:29] 10 0.94%
greenyellow [30:49] 1 0.09%
lawngreen 50+ 858 80.9%
All colors 1060 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
15 993 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00993 __cxa_allocate_exception
14 329 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00329 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 230 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00230
12 458 jsoncons::detail::span jsoncons::typed_array_cast (jsoncons::detail::span ) call site: 00458 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
6 410 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00410
5 354 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00354
5 498 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00498 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 520 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00520 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIjEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 542 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00542 _ZN8jsoncons4cbor20typed_array_iterator11write_valueImEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 560 jsoncons::detail::span jsoncons::typed_array_cast (jsoncons::detail::span ) call site: 00560 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIaEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 583 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00583 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIsEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
5 605 void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00605 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE

Runtime coverage analysis

Covered functions
434
Functions that are reachable but not covered
50
Reachable functions
626
Percentage of reachable functions covered
92.01%
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/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp 1
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 44
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 7
/src/jsoncons/./include/jsoncons/detail/expected.hpp 8

Fuzzer: fuzz_bson

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 30 10.2%
gold [1:9] 0 0.0%
yellow [10:29] 22 7.53%
greenyellow [30:49] 1 0.34%
lawngreen 50+ 239 81.8%
All colors 292 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
5 70 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00070 __cxa_end_catch
3 213 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00213
3 217 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00217
2 53 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser >&>(std::__1::basic_istream >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&) call site: 00053
2 56 jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&) call site: 00056
2 87 jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00087 __clang_call_terminate
2 259 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00259
2 262 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00262
2 265 jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00265
2 275 jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream , std::__1::allocator >&>(std::__1::basic_istringstream , std::__1::allocator >&) call site: 00275
1 5 _ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE call site: 00005
1 42 jsoncons::basic_json >::~basic_json() call site: 00042 __cxa_begin_catch

Runtime coverage analysis

Covered functions
356
Functions that are reachable but not covered
44
Reachable functions
326
Percentage of reachable functions covered
86.5%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_bson.cpp 1
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp 2
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 17
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 4
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp 15
/src/jsoncons/./include/jsoncons/ser_utils.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/utility/binary.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp 3
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 1
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp 5
/src/jsoncons/./include/jsoncons/detail/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_ubjson

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 310 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 310 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
309 0 EP call site: 00000 _ZN8jsoncons6ubjson17try_decode_ubjsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_21ubjson_decode_optionsE

Runtime coverage analysis

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

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp 1
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp 2
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp 7
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 18
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 4
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp 15
/src/jsoncons/./include/jsoncons/ser_utils.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/utility/binary.hpp 14
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 1
/src/jsoncons/./include/jsoncons/detail/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_msgpack

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 133 20.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 518 79.5%
All colors 651 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
16 488 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00488
15 316 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00316
14 412 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00412 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
11 437 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00437
6 466 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00466
5 82 jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long) call site: 00082 __cxa_end_catch
5 302 jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&) call site: 00302
5 482 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00482 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
4 379 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00379 __cxa_allocate_exception
4 571 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE call site: 00571
3 284 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00284
3 576 _ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE call site: 00576

Runtime coverage analysis

Covered functions
511
Functions that are reachable but not covered
55
Reachable functions
472
Percentage of reachable functions covered
88.35%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp 1
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp 2
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp 12
/src/jsoncons/./include/jsoncons/ser_utils.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 17
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 17
/src/jsoncons/./include/jsoncons/utility/binary.hpp 20
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/detail/expected.hpp 9
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 4
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Fuzzer: fuzz_parse

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 75 20.4%
gold [1:9] 7 1.91%
yellow [10:29] 1 0.27%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 283 77.3%
All colors 366 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
9 309 _ZN8jsoncons10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEE5parseINS2_12basic_stringIcNS2_11char_traitsIcEES4_EEEENS2_9enable_ifIXsr10ext_traits17is_string_view_ofIT_cEE5valueES5_E4typeERKSC_RKNS_25basic_json_decode_optionsIcEE call site: 00309 __cxa_allocate_exception
8 26 jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*) call site: 00026
5 336 void jsoncons::basic_json >::construct >::null_storage>() call site: 00336
4 134 jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00134
4 270 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00270
4 277 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00277 __cxa_allocate_exception
4 358 LLVMFuzzerTestOneInput call site: 00358
3 106 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00106
3 118 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00118
3 173 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00173
3 177 jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00177
3 286 jsoncons::basic_json_parser >::parse_some(jsoncons::basic_json_visitor &) call site: 00286

Runtime coverage analysis

Covered functions
309
Functions that are reachable but not covered
49
Reachable functions
302
Percentage of reachable functions covered
83.77%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/jsoncons/./fuzzers/fuzz_parse.cpp 1
/src/jsoncons/./include/jsoncons/json_options.hpp 21
/src/jsoncons/./include/jsoncons/basic_json.hpp 31
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 16
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_parser.hpp 35
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_exception.hpp 7
/usr/local/bin/../include/c++/v1/__exception/exception.h 1
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 10
/src/jsoncons/./include/jsoncons/json_type.hpp 1

Fuzzer: fuzz_cbor_encoder

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 784 71.9%
gold [1:9] 110 10.1%
yellow [10:29] 61 5.60%
greenyellow [30:49] 12 1.10%
lawngreen 50+ 122 11.2%
All colors 1089 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
355 118 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00118 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEpLImEENS1_9enable_ifIXaasr10ext_traits19is_unsigned_integerIT_EE5valuelestS7_Lm8EERS4_E4typeES7_
40 967 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor &, std::__1::error_code&) call site: 00967 _ZN8jsoncons6detail8expectedImNSt3__14errcEEC2ImEENS2_9enable_ifIXsr3std24is_default_constructibleIT_EE5valueEiE4typeE
32 933 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(std::__1::basic_string , std::__1::allocator >&, std::__1::error_code&) call site: 00933 _ZN8jsoncons14integer_to_hexImNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEEENS1_9enable_ifIXsr10ext_traits10is_integerIT_EE5valueEmE4typeES9_RT0_
29 1009 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_classical_array_storage(unsigned char, std::__1::error_code&) call site: 01009 __cxa_allocate_exception
20 533 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00533 _ZN8jsoncons4cbor20typed_array_iterator11write_valueItEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 621 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00621 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIiEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
17 708 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00708 _ZN8jsoncons6binary9byte_swapIdEENSt3__19enable_ifIXaasr3std17is_floating_pointIT_EE5valueeqstS4_Lm8EES4_E4typeES4_
16 662 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00662 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIlEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
15 894 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_decimal_fraction(std::__1::basic_string , std::__1::allocator >&, std::__1::error_code&) call site: 00894 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2IiEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
14 580 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00580 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIaEENSt3__19enable_ifIXsr10ext_traits17is_signed_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
12 485 jsoncons::detail::span jsoncons::typed_array_cast (jsoncons::detail::span ) call site: 00485 _ZN8jsoncons4cbor20typed_array_iterator11write_valueIhEENSt3__19enable_ifIXsr10ext_traits19is_unsigned_integerIT_EE5valueEvE4typeES5_NS_12semantic_tagERNS_21basic_generic_visitorIcEERKNS_11ser_contextERNS3_10error_codeE
12 507 jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor &, jsoncons::ser_context const&, std::__1::error_code&) call site: 00507 _ZN8jsoncons6detail4spanIhLm18446744073709551615EEC2INSt3__16vectorIhNS4_9allocatorIhEEEEEERT_PNS4_9enable_ifIXaaaaaantsr7is_spanIS9_EE5valuentsr10ext_traits12is_std_arrayIS9_EE5valuesr10ext_traits21is_compatible_elementIS9_hEE5valuesr10ext_traits17has_data_and_sizeIS9_EE5valueEvE4typeE

Runtime coverage analysis

Covered functions
278
Functions that are reachable but not covered
305
Reachable functions
659
Percentage of reachable functions covered
53.72%
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/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp 1
/src/jsoncons/./include/jsoncons/sink.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 11
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/utility/binary.hpp 16
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 3
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 44
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/source.hpp 19
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 1
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 1
/src/jsoncons/./include/jsoncons/detail/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 7
/src/jsoncons/./include/jsoncons/detail/expected.hpp 8

Fuzzer: fuzz_csv

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 462 65.1%
gold [1:9] 1 0.14%
yellow [10:29] 1 0.14%
greenyellow [30:49] 4 0.56%
lawngreen 50+ 241 33.9%
All colors 709 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
113 240 jsoncons::decstr_to_double(char const*, unsigned long, double&) call site: 00240 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr10ext_traits8is_char8IT_EE5valueENS0_14unicode_resultIS4_EEE4typeEPKS4_m
108 506 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00506 _ZN8jsoncons18basic_json_visitorIcE17byte_string_valueINS_17basic_byte_stringINSt3__19allocatorIhEEEEEEbRKT_NS_12semantic_tagERKNS_11ser_contextENS4_9enable_ifIXsr10ext_traits18is_bytes_view_likeIS8_EE5valueEiE4typeE
44 409 jsoncons::ser_error::ser_error(std::__1::error_code, unsigned long, unsigned long) call site: 00409 __cxa_throw
42 171 jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00171 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_
30 101 void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string , std::__1::allocator > const&, std::__1::vector >&) call site: 00101 __cxa_allocate_exception
13 393 jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00393 __cxa_allocate_exception
11 470 jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor &, bool, std::__1::error_code&) call site: 00470 isspace
8 19 jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*) call site: 00019
7 228 _ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ call site: 00228
6 488 jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00488
4 56 LLVMFuzzerTestOneInput call site: 00056
4 631 jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor &, std::__1::error_code&) call site: 00631

Runtime coverage analysis

Covered functions
224
Functions that are reachable but not covered
190
Reachable functions
483
Percentage of reachable functions covered
60.66%
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/jsoncons/./fuzzers/fuzz_csv.cpp 1
/src/jsoncons/./include/jsoncons/json_decoder.hpp 2
/src/jsoncons/./include/jsoncons/json_visitor.hpp 30
/src/jsoncons/./include/jsoncons/basic_json.hpp 16
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 6
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 4
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp 44
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp 5
/src/jsoncons/./include/jsoncons/source_adaptor.hpp 3
/src/jsoncons/./include/jsoncons/source.hpp 4
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp 27
/src/jsoncons/./include/jsoncons/ser_utils.hpp 2
/src/jsoncons/./include/jsoncons/detail/span.hpp 4
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 6
/src/jsoncons/./include/jsoncons/json_parser.hpp 33
/src/jsoncons/./include/jsoncons/json_options.hpp 17
/src/jsoncons/./include/jsoncons/utility/read_number.hpp 10
/src/jsoncons/./include/jsoncons/json_exception.hpp 14
/usr/local/bin/../include/c++/v1/__exception/exception.h 2
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 3
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: fuzz_cbor

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 147 12.3%
gold [1:9] 2 0.16%
yellow [10:29] 1 0.08%
greenyellow [30:49] 9 0.75%
lawngreen 50+ 1033 86.6%
All colors 1192 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
14 369 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00369 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
13 270 jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&) call site: 00270
6 450 jsoncons::basic_bigint >::operator>>=(unsigned long) call site: 00450
5 394 jsoncons::basic_bigint >::operator<<=(unsigned long) call site: 00394
4 336 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00336 __cxa_allocate_exception
4 1102 _ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE call site: 01102
3 111 jsoncons::stream_source >::read(unsigned char*, unsigned long) call site: 00111 __cxa_begin_catch
3 238 jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&) call site: 00238
3 439 jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const call site: 00439 _ZN8jsoncons12basic_bigintINSt3__19allocatorImEEEC2ImEET_RKS3_PNS1_9enable_ifIXsr3std11is_integralIS6_EE5valueEvE4typeE
3 1107 _ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE call site: 01107
3 1187 LLVMFuzzerTestOneInput call site: 01187
2 53 jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::basic_cbor_parser >&>(std::__1::basic_istream >&, jsoncons::cbor::cbor_decode_options const&, std::__1::allocator const&) call site: 00053

Runtime coverage analysis

Covered functions
770
Functions that are reachable but not covered
65
Reachable functions
797
Percentage of reachable functions covered
91.84%
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/jsoncons/./fuzzers/fuzz_cbor.cpp 1
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp 2
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp 6
/src/jsoncons/./include/jsoncons/json_decoder.hpp 4
/src/jsoncons/./include/jsoncons/json_visitor.hpp 6
/src/jsoncons/./include/jsoncons/basic_json.hpp 30
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp 6
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp 5
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp 3
/src/jsoncons/./include/jsoncons/allocator_holder.hpp 1
/src/jsoncons/./include/jsoncons/json_filter.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp 5
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp 46
/src/jsoncons/./include/jsoncons/ser_utils.hpp 7
/src/jsoncons/./include/jsoncons/source.hpp 20
/src/jsoncons/./include/jsoncons/generic_visitor.hpp 20
/src/jsoncons/./include/jsoncons/utility/binary.hpp 13
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp 7
/src/jsoncons/./include/jsoncons/utility/bigint.hpp 75
/src/jsoncons/./include/jsoncons/detail/span.hpp 54
/src/jsoncons/./include/jsoncons/typed_array.hpp 11
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp 36
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp 11
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp 1
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp 2
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp 1
/src/jsoncons/./include/jsoncons/utility/write_number.hpp 7
/src/jsoncons/./include/jsoncons/detail/expected.hpp 17
/src/jsoncons/./include/jsoncons/json_type.hpp 1
/src/jsoncons/./include/jsoncons/json_exception.hpp 8
/usr/local/bin/../include/c++/v1/__exception/exception.h 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

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

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['N/A', 'N/A', 'N/A'] 13 0 285 42 3 1012 0 1930 1837
jsoncons::json_decoder >,std::__1::allocator >::visit_end_array(jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_decoder.hpp 3 ['N/A', 'N/A', 'N/A'] 13 0 285 42 3 1012 0 1930 1810
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_key(std::__1::basic_string_view >const&,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp 4 ['N/A', 'N/A', 'N/A', 'N/A'] 17 0 24 3 2 274 0 1074 573
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons/json_encoder.hpp 5 ['N/A', 'double', 'char', 'N/A', 'N/A'] 18 0 534 63 5 331 0 871 306
jsoncons::ordered_json_object ,std::__1::allocator >,jsoncons::basic_json >,std::__1::vector>::~ordered_json_object() /src/jsoncons/./include/jsoncons/ordered_json_object.hpp 1 ['N/A'] 8 0 17 3 2 213 0 378 238
jsoncons::sorted_json_object ,std::__1::allocator >,jsoncons::basic_json >,std::__1::vector>::~sorted_json_object() /src/jsoncons/./include/jsoncons/sorted_json_object.hpp 1 ['N/A'] 8 0 17 3 2 213 0 378 213
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) /src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp 5 ['N/A', 'N/A', 'char', 'N/A', 'N/A'] 4 0 393 41 10 60 0 226 181

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

Functions statically reachable by fuzzers
70.0%
2007 / 2856
Cyclomatic complexity statically reachable by fuzzers
76.0%
10673 / 13965

All functions overview

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

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

Fuzz engine guidance

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

/src/jsoncons/./fuzzers/fuzz_bson_encoder.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=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_encoder >, void>, std::__1::allocator >::basic_bson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::bson::bson_encode_options const&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.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=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_encoder >, void>, std::__1::allocator >::basic_ubjson_encoder(jsoncons::bytes_sink >, void>&&, jsoncons::ubjson::ubjson_encode_options const&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_bigint.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=['jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::get_storage_view() const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::detail::bigint_storage >::allocated_storage::reserve(unsigned long, std::__1::allocator const&)', 'jsoncons::detail::bigint_storage >::allocated_storage::allocated_storage(jsoncons::detail::bigint_storage >::allocated_storage const&, std::__1::allocator const&)', 'jsoncons::basic_bigint >::set_negative(bool)', 'jsoncons::to_bigint_result jsoncons::to_bigint >(char const*, unsigned long, jsoncons::basic_bigint >&, std::__1::allocator const&)', 'jsoncons::basic_bigint >::basic_bigint(char const*, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_json_parser_max.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=['jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::json_source_adaptor > >::json_source_adaptor, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_json_cursor.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=['jsoncons::basic_json_parser >::parse_false(char const*, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'void jsoncons::prettify_string, std::__1::allocator > >(char const*, int, int, int, int, std::__1::basic_string, std::__1::allocator >&)', 'jsoncons::write_double::write_double(jsoncons::float_chars_format, int)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', '_ZNK8jsoncons16basic_staj_eventIcE4get_INSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEES8_cEENS3_9enable_ifIXaasr10ext_traits9is_stringIT_EE5valuesr3std7is_sameINSB_10value_typeET1_EE5valueESB_E4typeET0_RNS3_10error_codeE', 'bool jsoncons::dtoa_general, std::__1::allocator > >(double, char, std::__1::basic_string, std::__1::allocator >&, std::__1::integral_constant)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_']

/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.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=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'LLVMFuzzerTestOneInput']

/src/jsoncons/./fuzzers/fuzz_json_encoder.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=['jsoncons::basic_json_reader >, std::__1::allocator >::check_done(std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::stream_source >::fill_buffer(char*, unsigned long)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::json_source_adaptor > >::json_source_adaptor, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.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=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::basic_ubjson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::read_value(jsoncons::basic_json_visitor&, unsigned char, std::__1::error_code&)', 'std::__1::enable_if::type jsoncons::binary::big_to_native(unsigned char const*, unsigned long)', 'jsoncons::ubjson::basic_ubjson_parser >, std::__1::allocator >::parse(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ubjson::basic_ubjson_reader >, std::__1::allocator >::basic_ubjson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::ubjson::ubjson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_bson_parser_max.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=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'LLVMFuzzerTestOneInput', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::bson::basic_bson_reader >, std::__1::allocator >::basic_bson_reader, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&, jsoncons::basic_json_visitor&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)']

/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.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=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'LLVMFuzzerTestOneInput', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.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=['jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::detail::span jsoncons::typed_array_cast(jsoncons::detail::span)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'void jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string >, std::__1::allocator >::read_byte_string_from_buffer>(jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_byte_string_from_buffer, jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::detail::span jsoncons::typed_array_cast(jsoncons::detail::span)']

/src/jsoncons/./fuzzers/fuzz_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=['jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', '_ZN8jsoncons4bson15try_decode_bsonINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19bson_decode_optionsE', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::basic_bson_parser >&>(std::__1::basic_istream >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator const&)', 'jsoncons::stream_source >::stream_source(std::__1::basic_istream >&, std::__1::allocator const&)', 'jsoncons::bson::basic_bson_parser >, std::__1::allocator >::end_document(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)', 'jsoncons::basic_json > jsoncons::bson::decode_bson >, std::__1::basic_istringstream, std::__1::allocator >&>(std::__1::basic_istringstream, std::__1::allocator >&)']

/src/jsoncons/./fuzzers/fuzz_ubjson.cpp

Dictionary

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


/src/jsoncons/./fuzzers/fuzz_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=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::stream_source >::fill_buffer(unsigned char*, unsigned long)', 'jsoncons::operator<(jsoncons::basic_bigint > const&, jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons7msgpack18try_decode_msgpackINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_22msgpack_decode_optionsE']

/src/jsoncons/./fuzzers/fuzz_parse.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=['_ZN8jsoncons10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEE5parseINS2_12basic_stringIcNS2_11char_traitsIcEES4_EEEENS2_9enable_ifIXsr10ext_traits17is_string_view_ofIT_cEE5valueES5_E4typeERKSC_RKNS_25basic_json_decode_optionsIcEE', 'jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*)', 'void jsoncons::basic_json >::construct >::null_storage>()', 'jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'LLVMFuzzerTestOneInput', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::basic_json_parser >::end_string_value(char const*, unsigned long, jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_cbor_encoder.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=['jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_item(jsoncons::basic_generic_visitor&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_bigfloat(std::__1::basic_string, std::__1::allocator >&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::begin_classical_array_storage(unsigned char, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)', 'jsoncons::cbor::basic_cbor_parser >, std::__1::allocator >::read_decimal_fraction(std::__1::basic_string, std::__1::allocator >&, std::__1::error_code&)', 'jsoncons::cbor::oned_typed_array_iterator >::next(jsoncons::basic_generic_visitor&, jsoncons::ser_context const&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_csv.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=['jsoncons::decstr_to_double(char const*, unsigned long, double&)', 'jsoncons::csv::basic_csv_parser >::parse_some(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::ser_error::ser_error(std::__1::error_code, unsigned long, unsigned long)', 'jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'void jsoncons::csv::detail::parse_column_types > >(std::__1::basic_string, std::__1::allocator > const&, std::__1::vector >&)', 'jsoncons::basic_json_parser >::parse_some_(jsoncons::basic_json_visitor&, std::__1::error_code&)', 'jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor&, bool, std::__1::error_code&)', 'jsoncons::heap::heap_string_factory >::destroy(jsoncons::heap::heap_string >*)', '_ZN8jsoncons14dec_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_', 'jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor&, std::__1::error_code&)']

/src/jsoncons/./fuzzers/fuzz_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=['jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', 'jsoncons::detail::bigint_storage >::operator=(jsoncons::detail::bigint_storage > const&)', 'jsoncons::basic_bigint >::operator>>=(unsigned long)', 'jsoncons::basic_bigint >::operator<<=(unsigned long)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const', '_ZN8jsoncons4cbor15try_decode_cborINS_10basic_jsonIcNS_13sorted_policyENSt3__19allocatorIcEEEEEENS4_9enable_ifIXsr10ext_traits13is_basic_jsonIT_EE5valueENS_6detail8expectedIS9_NS_10read_errorEEEE4typeERNS4_13basic_istreamIcNS4_11char_traitsIcEEEERKNS0_19cbor_decode_optionsE', 'jsoncons::stream_source >::read(unsigned char*, unsigned long)', 'jsoncons::basic_bigint >::operator-=(jsoncons::basic_bigint > const&)', 'jsoncons::basic_bigint >::divide(jsoncons::basic_bigint > const&, jsoncons::basic_bigint >&, jsoncons::basic_bigint >&, bool) const']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

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

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
jsoncons::stream_source >::read(unsignedchar*,unsignedlong) 55 30 54.54% ['fuzz_bson_parser_max', 'fuzz_cbor_encoder', 'fuzz_ubjson_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_ubjson_parser_max', 'fuzz_cbor', 'fuzz_msgpack_parser_max', 'fuzz_ubjson', 'fuzz_msgpack_encoder', 'fuzz_bson_encoder', 'fuzz_bson']
_ZN8jsoncons10to_integerIjcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedntsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ 176 44 25.0% ['fuzz_bson_encoder']
jsoncons::bson::basic_bson_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 52 27 51.92% ['fuzz_bson_encoder']
jsoncons::basic_json_parser >::end_negative_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 40 19 47.5% ['fuzz_json_cursor', 'fuzz_csv', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_json_parser_max']
jsoncons::basic_json_parser >::end_positive_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 40 19 47.5% ['fuzz_json_cursor', 'fuzz_csv', 'fuzz_parse', 'fuzz_json_encoder', 'fuzz_json_parser_max']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>(double,std::__1::basic_string ,std::__1::allocator >&) 72 19 26.38% ['fuzz_json_cursor']
booljsoncons::dtoa_general ,std::__1::allocator >>(double,char,std::__1::basic_string ,std::__1::allocator >&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_json_cursor']
unsignedlongjsoncons::write_double::operator() ,std::__1::allocator >>>(double,jsoncons::string_sink ,std::__1::allocator >>&) 72 19 26.38% ['fuzz_cbor_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_msgpack_encoder']
booljsoncons::dtoa_general ,std::__1::allocator >>>(double,char,jsoncons::string_sink ,std::__1::allocator >>&,std::__1::integral_constant ) 33 18 54.54% ['fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_msgpack_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::basic_json_encoder(jsoncons::string_sink ,std::__1::allocator >>&&,jsoncons::basic_json_encode_options const&,std::__1::allocator const&) 57 31 54.38% ['fuzz_json_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 74 18 24.32% ['fuzz_json_encoder']
jsoncons::basic_json_encoder ,std::__1::allocator >>,std::__1::allocator >::write_bignum_value(std::__1::basic_string_view >const&) 63 10 15.87% ['fuzz_json_encoder']
_ZN8jsoncons14unicode_traits12to_codepointIcjEENSt3__19enable_ifIXaasr10ext_traits8is_char8IT_EE5valuesr10ext_traits9is_char32IT0_EE5valueENS0_14unicode_resultIS4_EEE4typeEPKS4_SB_RS5_NS0_11strict_flagE 68 21 30.88% ['fuzz_json_encoder']
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_uint64(unsignedlong,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 76 37 48.68% ['fuzz_msgpack_encoder']
jsoncons::msgpack::basic_msgpack_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 80 36 45.0% ['fuzz_msgpack_encoder']
jsoncons::basic_json >::swap(jsoncons::basic_json >&) 36 18 50.0% ['fuzz_cbor', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_bson']
jsoncons::bson::bson_error_category_impl::message(int)const 35 19 54.28% ['fuzz_bson']
_ZN8jsoncons14hex_to_integerIlcEENSt3__19enable_ifIXaasr10ext_traits14integer_limitsIT_EE14is_specializedsr10ext_traits14integer_limitsIS3_EE9is_signedENS_16to_number_resultIT0_EEE4typeEPKS5_mRS3_ 76 31 40.78% ['fuzz_cbor_encoder']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_double(double,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 39 16 41.02% ['fuzz_cbor_encoder']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_string(std::__1::basic_string_view >const&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 57 19 33.33% ['fuzz_cbor_encoder']
jsoncons::cbor::basic_cbor_encoder >,void>,std::__1::allocator >::visit_byte_string(jsoncons::byte_string_viewconst&,jsoncons::semantic_tag,jsoncons::ser_contextconst&,std::__1::error_code&) 53 21 39.62% ['fuzz_cbor_encoder']
jsoncons::basic_json >::swap(jsoncons::basic_json >&) 36 11 30.55% ['fuzz_csv']
jsoncons::json_array >,std::__1::vector>::flatten_and_destroy() 38 20 52.63% ['fuzz_csv']
voidjsoncons::csv::detail::parse_column_types >>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector >&) 139 15 10.79% ['fuzz_csv']
voidjsoncons::csv::detail::parse_column_names ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>>(std::__1::basic_string ,std::__1::allocator >const&,std::__1::vector ,std::__1::allocator >,std::__1::allocator ,std::__1::allocator >>>&) 47 7 14.89% ['fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_unquoted_string_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 63 20 31.74% ['fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_value(jsoncons::basic_json_visitor &,bool,std::__1::error_code&) 200 18 9.0% ['fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_quoted_string_value(jsoncons::basic_json_visitor &,std::__1::error_code&) 59 17 28.81% ['fuzz_csv']
jsoncons::csv::basic_csv_parser >::end_record(jsoncons::basic_json_visitor &,std::__1::error_code&) 96 40 41.66% ['fuzz_csv']

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
[] []
/usr/local/bin/../include/c++/v1/stdlib.h [] []
/src/jsoncons/./fuzzers/fuzz_cbor.cpp ['fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/staj_event.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/sink.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_encoder', 'fuzz_msgpack_encoder', 'fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons/ser_utils.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_reader.hpp ['fuzz_ubjson_encoder', 'fuzz_ubjson_parser_max', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/conv_error.hpp [] []
/src/jsoncons/./include/jsoncons/utility/bigint.hpp ['fuzz_bigint', 'fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_cbor_parser_max.cpp ['fuzz_cbor_parser_max'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_parser_max.cpp ['fuzz_msgpack_parser_max'] []
/src/jsoncons/./include/jsoncons/utility/heap_string.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp ['fuzz_bson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/detail/span.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/bson/decode_bson.hpp ['fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_encoder.hpp ['fuzz_msgpack_encoder'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_reader.hpp ['fuzz_csv'] []
/src/jsoncons/./include/jsoncons/config/jsoncons_config.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_bigint', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/usr/local/bin/../include/c++/v1/string [] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_options.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/utility/function_objects.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_parser.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_msgpack_encoder.cpp ['fuzz_msgpack_encoder'] []
/src/jsoncons/./include/jsoncons/sorted_json_object.hpp [] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_reader.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_json_cursor.cpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_options.hpp ['fuzz_bson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/detail/grisu3.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/decode_msgpack.hpp ['fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/source_adaptor.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/utility/write_number.hpp ['fuzz_bson_encoder', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_bson_parser_max', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/typed_array.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/config/compiler_support.hpp ['fuzz_json_cursor', 'fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/json_parser.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/cbor/decode_cbor.hpp ['fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/detail/make_obj_using_allocator.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/json_reader.hpp ['fuzz_json_parser_max', 'fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_options.hpp ['fuzz_ubjson_encoder', 'fuzz_ubjson_parser_max', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_encoder.hpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./include/jsoncons/json_options.hpp ['fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_parse', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/staj_cursor.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/json_cursor.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/json_decoder.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_parser.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./fuzzers/fuzz_json_parser_max.cpp ['fuzz_json_parser_max'] []
/src/jsoncons/./include/jsoncons/json_error.hpp [] []
/src/jsoncons/./fuzzers/fuzz_ubjson_encoder.cpp ['fuzz_ubjson_encoder'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_decimal128.hpp ['fuzz_bson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_parser.hpp ['fuzz_ubjson_encoder', 'fuzz_ubjson_parser_max', 'fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons/utility/byte_string.hpp ['fuzz_bson_encoder', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_typed_array_iterator.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/utility/conversion.hpp ['fuzz_json_cursor'] []
/src/jsoncons/./include/jsoncons/utility/binary.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_msgpack_parser_max', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_bson_encoder.cpp ['fuzz_bson_encoder'] []
/src/jsoncons/./include/jsoncons/utility/read_number.hpp ['fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_ubjson', 'fuzz_parse', 'fuzz_csv'] []
/src/jsoncons/./fuzzers/fuzz_cbor_encoder.cpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_reader.hpp ['fuzz_bson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons/utility/more_type_traits.hpp ['fuzz_bigint', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_bigint.cpp ['fuzz_bigint'] []
/src/jsoncons/./include/jsoncons/allocator_holder.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_bson.cpp ['fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_oid.hpp ['fuzz_bson_encoder', 'fuzz_bson_parser_max', 'fuzz_bson'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_encoder.hpp ['fuzz_cbor_encoder'] []
/src/jsoncons/./include/jsoncons/key_value.hpp [] []
/src/jsoncons/./include/jsoncons/detail/expected.hpp ['fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_msgpack.cpp ['fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/generic_visitor.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_error.hpp [] []
/src/jsoncons/./include/jsoncons/json_array.hpp [] []
/src/jsoncons/./fuzzers/fuzz_ubjson_parser_max.cpp ['fuzz_ubjson_parser_max'] []
/src/jsoncons/./include/jsoncons_ext/ubjson/decode_ubjson.hpp ['fuzz_ubjson'] []
/src/jsoncons/./fuzzers/fuzz_ubjson.cpp ['fuzz_ubjson'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_parser.hpp ['fuzz_csv'] []
/src/jsoncons/./include/jsoncons/json_filter.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_options.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_csv.cpp ['fuzz_csv'] []
/usr/local/bin/../include/c++/v1/stdexcept ['fuzz_json_cursor', 'fuzz_csv'] []
/src/jsoncons/./include/jsoncons/source.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/ubjson/ubjson_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_error.hpp [] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_reader.hpp ['fuzz_msgpack_parser_max', 'fuzz_msgpack_encoder', 'fuzz_msgpack'] []
/src/jsoncons/./include/jsoncons/json_exception.hpp ['fuzz_json_cursor', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons_ext/bson/bson_encoder.hpp ['fuzz_bson_encoder'] []
/src/jsoncons/./include/jsoncons/json_encoders.hpp [] []
/src/jsoncons/./fuzzers/fuzz_parse.cpp ['fuzz_parse'] []
/src/jsoncons/./include/jsoncons/json_encoder.hpp ['fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons_ext/msgpack/msgpack_error.hpp [] []
/src/jsoncons/./include/jsoncons/json_visitor.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_json_encoder.cpp ['fuzz_json_encoder'] []
/src/jsoncons/./include/jsoncons/json_type.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/basic_json.hpp ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/usr/local/bin/../include/c++/v1/__exception/exception.h ['fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/utility/unicode_traits.hpp ['fuzz_bson_encoder', 'fuzz_ubjson_encoder', 'fuzz_json_parser_max', 'fuzz_json_cursor', 'fuzz_msgpack_parser_max', 'fuzz_json_encoder', 'fuzz_ubjson_parser_max', 'fuzz_bson_parser_max', 'fuzz_msgpack_encoder', 'fuzz_cbor_parser_max', 'fuzz_bson', 'fuzz_ubjson', 'fuzz_msgpack', 'fuzz_parse', 'fuzz_cbor_encoder', 'fuzz_csv', 'fuzz_cbor'] []
/src/jsoncons/./include/jsoncons/ordered_json_object.hpp [] []
/src/jsoncons/./include/jsoncons_ext/csv/csv_options.hpp ['fuzz_csv'] []
/src/jsoncons/./include/jsoncons_ext/cbor/cbor_detail.hpp ['fuzz_cbor_parser_max', 'fuzz_cbor_encoder', 'fuzz_cbor'] []
/src/jsoncons/./fuzzers/fuzz_bson_parser_max.cpp ['fuzz_bson_parser_max'] []

Directories in report

Directory
/usr/local/bin/../include/c++/v1/
/src/jsoncons/./include/jsoncons_ext/bson/
/src/jsoncons/./include/jsoncons_ext/ubjson/
/src/jsoncons/./include/jsoncons/
/src/jsoncons/./include/jsoncons/config/
/src/jsoncons/./include/jsoncons/detail/
/usr/local/bin/../include/c++/v1/__exception/
/src/jsoncons/./fuzzers/
/src/jsoncons/./include/jsoncons_ext/cbor/
/src/jsoncons/./include/jsoncons_ext/csv/
/src/jsoncons/./include/jsoncons_ext/msgpack/
/src/jsoncons/./include/jsoncons/utility/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
fuzz_bson_encoder fuzzerLogFile-0-YBIfDlfoQy.data fuzzerLogFile-0-YBIfDlfoQy.data.yaml fuzz_bson_encoder.covreport
fuzz_ubjson_encoder fuzzerLogFile-0-ff2uK9W2Rw.data fuzzerLogFile-0-ff2uK9W2Rw.data.yaml fuzz_ubjson_encoder.covreport
fuzz_bigint fuzzerLogFile-0-WY7GvuzgC5.data fuzzerLogFile-0-WY7GvuzgC5.data.yaml fuzz_bigint.covreport
fuzz_json_parser_max fuzzerLogFile-0-KeevsC09Gq.data fuzzerLogFile-0-KeevsC09Gq.data.yaml fuzz_json_parser_max.covreport
fuzz_json_cursor fuzzerLogFile-0-LJB2n6GekH.data fuzzerLogFile-0-LJB2n6GekH.data.yaml fuzz_json_cursor.covreport
fuzz_msgpack_parser_max fuzzerLogFile-0-CKqk4rOuZm.data fuzzerLogFile-0-CKqk4rOuZm.data.yaml fuzz_msgpack_parser_max.covreport
fuzz_json_encoder fuzzerLogFile-0-l7SJYDZNSX.data fuzzerLogFile-0-l7SJYDZNSX.data.yaml fuzz_json_encoder.covreport
fuzz_ubjson_parser_max fuzzerLogFile-0-8eAjApqMKM.data fuzzerLogFile-0-8eAjApqMKM.data.yaml fuzz_ubjson_parser_max.covreport
fuzz_bson_parser_max fuzzerLogFile-0-4CKqg3THqj.data fuzzerLogFile-0-4CKqg3THqj.data.yaml fuzz_bson_parser_max.covreport
fuzz_msgpack_encoder fuzzerLogFile-0-7qoOJVoaKa.data fuzzerLogFile-0-7qoOJVoaKa.data.yaml fuzz_msgpack_encoder.covreport
fuzz_cbor_parser_max fuzzerLogFile-0-r2LsqaF8pJ.data fuzzerLogFile-0-r2LsqaF8pJ.data.yaml fuzz_cbor_parser_max.covreport
fuzz_bson fuzzerLogFile-0-y2sk0y4ceV.data fuzzerLogFile-0-y2sk0y4ceV.data.yaml fuzz_bson.covreport
fuzz_ubjson fuzzerLogFile-0-VPiyvUQAqn.data fuzzerLogFile-0-VPiyvUQAqn.data.yaml fuzz_ubjson.covreport
fuzz_msgpack fuzzerLogFile-0-MTvOh5tKTe.data fuzzerLogFile-0-MTvOh5tKTe.data.yaml fuzz_msgpack.covreport
fuzz_parse fuzzerLogFile-0-w5VOYO1QZO.data fuzzerLogFile-0-w5VOYO1QZO.data.yaml fuzz_parse.covreport
fuzz_cbor_encoder fuzzerLogFile-0-hjHJwMe9NC.data fuzzerLogFile-0-hjHJwMe9NC.data.yaml fuzz_cbor_encoder.covreport
fuzz_csv fuzzerLogFile-0-Xun0JUKF3B.data fuzzerLogFile-0-Xun0JUKF3B.data.yaml fuzz_csv.covreport
fuzz_cbor fuzzerLogFile-0-GMvsWCeS0W.data fuzzerLogFile-0-GMvsWCeS0W.data.yaml fuzz_cbor.covreport