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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 0 jsoncons::stream_source ::read(unsignedchar*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/source.hpp:254
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/utility/binary.hpp:198
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/utility/binary.hpp:198
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/utility/binary.hpp:198
0 0 None 0 0 std::__1::enable_if ::typejsoncons::binary::little_to_native (unsignedcharconst*,unsignedlong) call site: 00000 /src/jsoncons/./include/jsoncons/utility/binary.hpp:198
0 0 None 0 0 jsoncons::bson::basic_bson_parser ,std::__1::allocator >::end_document(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp:280
0 0 None 0 0 jsoncons::bson::basic_bson_parser ,std::__1::allocator >::end_array(jsoncons::basic_json_visitor &,std::__1::error_code&) call site: 00000 /src/jsoncons/./include/jsoncons_ext/bson/bson_parser.hpp:328

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 jsoncons::basic_default_json_visitor<char>::basic_default_json_visitor() [function] [call site] 00001
2 jsoncons::basic_json_visitor<char>::basic_json_visitor() [function] [call site] 00002
1 jsoncons::bson::bson_decode_options::bson_decode_options() [function] [call site] 00003
2 jsoncons::bson::bson_options_common::bson_options_common() [function] [call site] 00004
1 jsoncons::bson::basic_bson_reader<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::basic_bson_reader<std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, jsoncons::basic_json_visitor<char>&, jsoncons::bson::bson_decode_options const&, std::__1::allocator<char> const&) [function] [call site] 00005
2 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::basic_bson_parser<std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, jsoncons::bson::bson_decode_options const&, std::__1::allocator<char> const&) [function] [call site] 00006
3 jsoncons::ser_context::ser_context() [function] [call site] 00007
3 jsoncons::stream_source<unsigned char>::stream_source(std::__1::basic_istream<char, std::__1::char_traits<char> >&, unsigned long) [function] [call site] 00008
4 jsoncons::basic_null_istream<char>::basic_null_istream() [function] [call site] 00009
5 jsoncons::basic_null_istream<char>::null_buffer::null_buffer() [function] [call site] 00010
4 jsoncons::basic_null_istream<char>::~basic_null_istream() [function] [call site] 00011
5 jsoncons::basic_null_istream<char>::~basic_null_istream() [function] [call site] 00012
6 jsoncons::basic_null_istream<char>::null_buffer::~null_buffer() [function] [call site] 00013
3 jsoncons::bson::bson_decode_options::bson_decode_options(jsoncons::bson::bson_decode_options const&) [function] [call site] 00014
4 jsoncons::bson::bson_options_common::bson_options_common(jsoncons::bson::bson_options_common const&) [function] [call site] 00015
3 jsoncons::bson::bson_decode_options::~bson_decode_options() [function] [call site] 00016
4 jsoncons::bson::bson_decode_options::~bson_decode_options() [function] [call site] 00017
4 jsoncons::bson::bson_options_common::~bson_options_common() [function] [call site] 00018
3 jsoncons::stream_source<unsigned char>::~stream_source() [function] [call site] 00019
4 jsoncons::basic_null_istream<char>::~basic_null_istream() [function] [call site] 00020
3 jsoncons::ser_context::~ser_context() [function] [call site] 00021
1 jsoncons::bson::bson_decode_options::~bson_decode_options() [function] [call site] 00022
1 jsoncons::bson::basic_bson_reader<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read(std::__1::error_code&) [function] [call site] 00023
2 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::reset() [function] [call site] 00024
2 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::parse(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00025
3 jsoncons::stream_source<unsigned char>::is_error() const [function] [call site] 00026
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::begin_document(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00027
4 jsoncons::bson::bson_options_common::max_nesting_depth() const [function] [call site] 00028
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00029
5 jsoncons::stream_source<unsigned char>::fill_buffer() [function] [call site] 00030
6 __cxa_begin_catch [call site] 00031
6 __cxa_end_catch [call site] 00032
6 __clang_call_terminate [call site] 00033
7 __cxa_begin_catch [call site] 00034
5 __cxa_begin_catch [call site] 00035
5 __cxa_end_catch [call site] 00036
5 __clang_call_terminate [call site] 00037
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, int>::type jsoncons::binary::little_to_native<int, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00038
4 jsoncons::basic_json_visitor<char>::begin_object(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00039
3 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00040
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_e_name(jsoncons::basic_json_visitor<char>&, jsoncons::bson::bson_container_type, std::__1::error_code&) [function] [call site] 00041
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_cstring(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::error_code&) [function] [call site] 00042
5 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00043
4 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr10ext_traits8is_char8IT_EE5valueENS0_14convert_resultIS4_EEE4typeEPKS4_m [function] [call site] 00044
5 _ZN8jsoncons14unicode_traits13is_legal_utf8IcEENSt3__19enable_ifIXsr10ext_traits8is_char8IT_EE5valueENS0_9conv_errcEE4typeEPKS4_m [function] [call site] 00045
5 __clang_call_terminate [call site] 00046
4 jsoncons::basic_json_visitor<char>::key(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00047
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::end_document(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00048
4 __cxa_allocate_exception [call site] 00049
4 jsoncons::assertion_error::assertion_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00050
5 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00051
5 __clang_call_terminate [call site] 00052
4 __cxa_throw [call site] 00053
4 __cxa_free_exception [call site] 00054
4 jsoncons::basic_json_visitor<char>::end_object(jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00055
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::level() const [function] [call site] 00056
3 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00057
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_e_name(jsoncons::basic_json_visitor<char>&, jsoncons::bson::bson_container_type, std::__1::error_code&) [function] [call site] 00058
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_value(jsoncons::basic_json_visitor<char>&, unsigned char, std::__1::error_code&) [function] [call site] 00059
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00060
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, double>::type jsoncons::binary::little_to_native<double, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00061
4 jsoncons::basic_json_visitor<char>::double_value(double, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00062
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::error_code&) [function] [call site] 00063
5 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00064
5 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, int>::type jsoncons::binary::little_to_native<int, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00065
5 _ZN8jsoncons13source_readerINS_13stream_sourceIhEEE4readINSt3__112basic_stringIcNS5_11char_traitsIcEENS5_9allocatorIcEEEEEENS5_9enable_ifIXaaaasr3std14is_convertibleIhNT_10value_typeEEE5valuesr10ext_traits11has_reserveISD_EE5valuentsr10ext_traits14has_data_exactIPhSD_EE5valueEmE4typeERS2_RSD_m [function] [call site] 00066
6 jsoncons::stream_source<unsigned char>::eof() const [function] [call site] 00067
6 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00068
5 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00069
4 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr10ext_traits8is_char8IT_EE5valueENS0_14convert_resultIS4_EEE4typeEPKS4_m [function] [call site] 00070
4 jsoncons::basic_json_visitor<char>::string_value(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00071
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::error_code&) [function] [call site] 00072
4 _ZN8jsoncons14unicode_traits8validateIcEENSt3__19enable_ifIXsr10ext_traits8is_char8IT_EE5valueENS0_14convert_resultIS4_EEE4typeEPKS4_m [function] [call site] 00073
4 jsoncons::basic_json_visitor<char>::string_value(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00074
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_cstring(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::error_code&) [function] [call site] 00075
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_cstring(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::error_code&) [function] [call site] 00076
4 jsoncons::basic_json_visitor<char>::string_value(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00077
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::begin_document(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00078
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::begin_array(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00079
5 jsoncons::bson::bson_options_common::max_nesting_depth() const [function] [call site] 00080
5 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00081
5 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, int>::type jsoncons::binary::little_to_native<int, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00082
5 jsoncons::basic_json_visitor<char>::begin_array(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00083
4 jsoncons::basic_json_visitor<char>::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00084
4 jsoncons::basic_json_visitor<char>::null_value(jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00085
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00086
4 jsoncons::basic_json_visitor<char>::bool_value(bool, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00087
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00088
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, int>::type jsoncons::binary::little_to_native<int, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00089
4 jsoncons::basic_json_visitor<char>::int64_value(long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00090
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00091
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, unsigned long>::type jsoncons::binary::little_to_native<unsigned long, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00092
4 jsoncons::basic_json_visitor<char>::uint64_value(unsigned long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00093
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00094
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, long>::type jsoncons::binary::little_to_native<long, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00095
4 jsoncons::basic_json_visitor<char>::int64_value(long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00096
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00097
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, long>::type jsoncons::binary::little_to_native<long, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00098
4 jsoncons::basic_json_visitor<char>::int64_value(long, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00099
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00100
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, int>::type jsoncons::binary::little_to_native<int, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00101
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00102
4 _ZN8jsoncons13source_readerINS_13stream_sourceIhEEE4readINSt3__16vectorIhNS5_9allocatorIhEEEEEENS5_9enable_ifIXaaaasr3std14is_convertibleIhNT_10value_typeEEE5valuesr10ext_traits11has_reserveISB_EE5valuesr10ext_traits14has_data_exactIPhSB_EE5valueEmE4typeERS2_RSB_m [function] [call site] 00103
5 jsoncons::stream_source<unsigned char>::eof() const [function] [call site] 00104
5 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00105
4 _ZN8jsoncons18basic_json_visitorIcE17byte_string_valueINSt3__16vectorIhNS3_9allocatorIhEEEEEEbRKT_mRKNS_11ser_contextERNS3_10error_codeENS3_9enable_ifIXsr10ext_traits16is_byte_sequenceIS8_EE5valueEiE4typeE [function] [call site] 00106
5 jsoncons::byte_string_view::byte_string_view(unsigned char const*, unsigned long) [function] [call site] 00107
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00108
4 jsoncons::bson::TP1::TP1() [function] [call site] 00109
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, unsigned long>::type jsoncons::binary::little_to_native<unsigned long, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00110
4 std::__1::enable_if<jsoncons::detail::endian::native==jsoncons::detail::endian::little, unsigned long>::type jsoncons::binary::little_to_native<unsigned long, jsoncons::detail::endian>(unsigned char const*, unsigned long) [function] [call site] 00111
4 jsoncons::bson::decimal128_to_chars(char*, char*, jsoncons::bson::TP1 const&) [function] [call site] 00112
5 jsoncons::bson::detail::bson_uint128_divide1B(jsoncons::bson::bson_uint128_t, jsoncons::bson::bson_uint128_t*, unsigned int*) [function] [call site] 00113
5 _ZN8jsoncons7utility12from_integerIiNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS2_9enable_ifIXsr10ext_traits10is_integerIT_EE5valueEmE4typeESA_RT0_ [function] [call site] 00114
6 __cxa_allocate_exception [call site] 00115
6 jsoncons::assertion_error::assertion_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00116
6 __cxa_throw [call site] 00117
6 __cxa_free_exception [call site] 00118
4 jsoncons::basic_json_visitor<char>::string_value(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00119
4 jsoncons::stream_source<unsigned char>::read(unsigned char*, unsigned long) [function] [call site] 00120
4 jsoncons::bson::oid_t::oid_t(unsigned char*) [function] [call site] 00121
4 void jsoncons::bson::to_string<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(jsoncons::bson::oid_t const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00122
5 jsoncons::bson::detail::init_hex_char_pairs(jsoncons::bson::oid_t const&, unsigned short*) [function] [call site] 00123
6 jsoncons::bson::oid_t::data() const [function] [call site] 00124
6 jsoncons::bson::detail::get_hex_char_pairs(std::__1::integral_constant<bool, false>) [function] [call site] 00125
4 jsoncons::basic_json_visitor<char>::string_value(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, jsoncons::semantic_tag, jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00126
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::end_array(jsoncons::basic_json_visitor<char>&, std::__1::error_code&) [function] [call site] 00127
4 __cxa_allocate_exception [call site] 00128
4 jsoncons::assertion_error::assertion_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00129
4 __cxa_throw [call site] 00130
4 __cxa_free_exception [call site] 00131
4 jsoncons::basic_json_visitor<char>::end_array(jsoncons::ser_context const&, std::__1::error_code&) [function] [call site] 00132
4 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::level() const [function] [call site] 00133
3 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::read_value(jsoncons::basic_json_visitor<char>&, unsigned char, std::__1::error_code&) [function] [call site] 00134
3 __cxa_allocate_exception [call site] 00135
3 jsoncons::assertion_error::assertion_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00136
3 __cxa_throw [call site] 00137
3 __cxa_free_exception [call site] 00138
3 jsoncons::basic_json_visitor<char>::flush() [function] [call site] 00139
1 jsoncons::bson::basic_bson_reader<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::~basic_bson_reader() [function] [call site] 00140
2 jsoncons::bson::basic_bson_parser<jsoncons::stream_source<unsigned char>, std::__1::allocator<char> >::~basic_bson_parser() [function] [call site] 00141
3 jsoncons::bson::bson_decode_options::~bson_decode_options() [function] [call site] 00142
3 jsoncons::stream_source<unsigned char>::~stream_source() [function] [call site] 00143
3 jsoncons::ser_context::~ser_context() [function] [call site] 00144
1 jsoncons::basic_default_json_visitor<char>::~basic_default_json_visitor() [function] [call site] 00145
2 jsoncons::basic_json_visitor<char>::~basic_json_visitor() [function] [call site] 00146