Fuzz introspector: x509_dn
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
11 11 1 :

['Botan::Invalid_State::Invalid_State(std::__1::basic_string_view >)']

17 17 Botan::BER_Decoder::end_cons() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:296
0 0 None 16 320 Botan::BER_Decoder::get_next_object() call site: 00000 /src/botan/src/lib/asn1/ber_dec.cpp:255
0 0 None 8 8 Botan::allocate_memory(unsignedlong,unsignedlong) call site: 00000 /src/botan/src/lib/utils/allocator.cpp:27
0 0 4 :

['std::__1::basic_string_view >::size() const', 'std::__1::basic_string_view >::operator[](unsigned long) const', 'std::__1::basic_ostream >& std::__1::operator<< >(std::__1::basic_ostream >&, char)', 'std::__1::basic_string_view >::at(unsigned long) const']

0 9 voidBotan::fmt_detail::do_fmt >,unsignedint>(std::__1::basic_ostringstream ,std::__1::allocator >&,std::__1::basic_string_view >,std::__1::basic_string_view >const&,unsignedintconst&) call site: 00000 /src/botan/build/include/internal/botan/internal/fmt.h:29
0 0 None 0 0 Botan::ASN1_String::ASN1_String(std::__1::basic_string_view >,Botan::ASN1_Type) call site: 00000 /src/botan/src/lib/asn1/asn1_str.cpp:65
0 0 None 0 0 Botan::(anonymousnamespace)::choose_encoding(std::__1::basic_string_view >) call site: 00000 /src/botan/src/lib/asn1/asn1_str.cpp:40

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzz(unsigned char const*, unsigned long) [function] [call site] 00001
2 Botan::X509_DN::X509_DN() [function] [call site] 00002
3 Botan::ASN1_Object::ASN1_Object() [function] [call site] 00003
2 Botan::X509_DN::X509_DN() [function] [call site] 00004
2 Botan::BER_Decoder::BER_Decoder(unsigned char const*, unsigned long) [function] [call site] 00005
3 Botan::BER_Object::BER_Object() [function] [call site] 00006
3 Botan::BER_Object::~BER_Object() [function] [call site] 00007
2 Botan::X509_DN::decode_from(Botan::BER_Decoder&) [function] [call site] 00008
3 Botan::BER_Decoder::start_sequence() [function] [call site] 00009
4 Botan::BER_Decoder::start_cons(Botan::ASN1_Type, Botan::ASN1_Class) [function] [call site] 00010
5 Botan::BER_Decoder::get_next_object() [function] [call site] 00011
6 Botan::BER_Object::BER_Object() [function] [call site] 00012
6 Botan::BER_Object::is_set() const [function] [call site] 00013
6 Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&) [function] [call site] 00014
7 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00015
7 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00016
7 __cxa_allocate_exception [call site] 00017
7 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00018
8 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00019
9 void Botan::fmt_detail::do_fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >>(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00020
10 Botan::fmt_detail::do_fmt(std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00021
8 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00022
9 Botan::Exception::Exception(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00023
10 std::exception::exception() [function] [call site] 00024
10 std::exception::~exception() [call site] 00025
7 Botan::Exception::~Exception() [function] [call site] 00026
8 std::exception::~exception() [call site] 00027
7 __cxa_allocate_exception [call site] 00028
7 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00029
7 Botan::Exception::~Exception() [function] [call site] 00030
7 __cxa_free_exception [call site] 00031
6 Botan::BER_Object::set_tagging(Botan::ASN1_Type, Botan::ASN1_Class) [function] [call site] 00032
6 Botan::BER_Object::is_set() const [function] [call site] 00033
6 Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long) [function] [call site] 00034
7 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00035
7 __cxa_allocate_exception [call site] 00036
7 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00037
7 Botan::Exception::~Exception() [function] [call site] 00038
7 __cxa_allocate_exception [call site] 00039
7 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00040
7 Botan::Exception::~Exception() [function] [call site] 00041
7 __cxa_allocate_exception [call site] 00042
7 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00043
7 Botan::Exception::~Exception() [function] [call site] 00044
7 Botan::(anonymous namespace)::find_eoc(Botan::DataSource*, unsigned long) [function] [call site] 00045
8 std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> >& Botan::operator+=<unsigned char, Botan::secure_allocator<unsigned char>, unsigned long>(std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> >&, std::__1::pair<unsigned char*, unsigned long> const&) [function] [call site] 00046
8 Botan::DataSource_Memory::DataSource_Memory(std::__1::vector<unsigned char, Botan::secure_allocator<unsigned char> >) [function] [call site] 00047
8 Botan::(anonymous namespace)::decode_tag(Botan::DataSource*, Botan::ASN1_Type&, Botan::ASN1_Class&) [function] [call site] 00048
8 Botan::(anonymous namespace)::decode_length(Botan::DataSource*, unsigned long&, unsigned long) [function] [call site] 00049
9 unsigned char Botan::get_byte<0ul, unsigned long>(unsigned long) [function] [call site] 00050
9 __cxa_allocate_exception [call site] 00051
9 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00052
9 Botan::Exception::~Exception() [function] [call site] 00053
9 Botan::DataSource::read_byte(unsigned char&) [function] [call site] 00054
9 __cxa_allocate_exception [call site] 00055
9 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00056
9 Botan::Exception::~Exception() [function] [call site] 00057
8 Botan::DataSource::discard_next(unsigned long) [function] [call site] 00058
8 Botan::checked_add(unsigned long, unsigned long, char const*, int) [function] [call site] 00059
9 __cxa_allocate_exception [call site] 00060
9 Botan::Integer_Overflow_Detected::Integer_Overflow_Detected(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int) [function] [call site] 00061
10 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&) [function] [call site] 00062
10 Botan::Exception::Exception(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00063
9 Botan::Exception::~Exception() [function] [call site] 00064
8 Botan::checked_add(unsigned long, unsigned long, char const*, int) [function] [call site] 00065
8 Botan::checked_add(unsigned long, unsigned long, char const*, int) [function] [call site] 00066
8 Botan::DataSource_Memory::~DataSource_Memory() [function] [call site] 00067
9 Botan::DataSource::~DataSource() [function] [call site] 00068
6 __cxa_allocate_exception [call site] 00069
6 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00070
6 Botan::BER_Object::mutable_bits(unsigned long) [function] [call site] 00071
6 __cxa_allocate_exception [call site] 00072
6 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00073
6 Botan::BER_Object::tagging() const [function] [call site] 00074
7 Botan::BER_Object::type_tag() const [function] [call site] 00075
6 Botan::BER_Object::~BER_Object() [function] [call site] 00076
5 Botan::operator|(Botan::ASN1_Class, Botan::ASN1_Class) [function] [call site] 00077
5 Botan::BER_Object::assert_is_a(Botan::ASN1_Type, Botan::ASN1_Class, std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00078
6 Botan::BER_Object::is_a(Botan::ASN1_Type, Botan::ASN1_Class) const [function] [call site] 00079
6 Botan::asn1_tag_to_string(Botan::ASN1_Type) [function] [call site] 00080
6 Botan::asn1_class_to_string(Botan::ASN1_Class) [function] [call site] 00081
6 Botan::asn1_tag_to_string(Botan::ASN1_Type) [function] [call site] 00082
6 Botan::asn1_class_to_string(Botan::ASN1_Class) [function] [call site] 00083
6 __cxa_allocate_exception [call site] 00084
6 Botan::BER_Decoding_Error::BER_Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00085
5 Botan::BER_Decoder::BER_Decoder(Botan::BER_Object&&, Botan::BER_Decoder*) [function] [call site] 00086
6 Botan::BER_Object::BER_Object() [function] [call site] 00087
6 Botan::BER_Object::~BER_Object() [function] [call site] 00088
5 Botan::BER_Object::~BER_Object() [function] [call site] 00089
3 Botan::BER_Decoder::end_cons() [function] [call site] 00090
4 __cxa_allocate_exception [call site] 00091
4 Botan::Invalid_State::Invalid_State(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00092
5 Botan::Exception::Exception(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00093
4 __cxa_allocate_exception [call site] 00094
4 Botan::Decoding_Error::Decoding_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00095
4 Botan::Exception::~Exception() [function] [call site] 00096
3 Botan::BER_Decoder::BER_Decoder(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&) [function] [call site] 00097
4 Botan::BER_Object::BER_Object() [function] [call site] 00098
4 Botan::BER_Object::~BER_Object() [function] [call site] 00099
3 Botan::BER_Decoder::more_items() const [function] [call site] 00100
4 Botan::BER_Object::is_set() const [function] [call site] 00101
3 Botan::BER_Decoder::start_set() [function] [call site] 00102
4 Botan::BER_Decoder::start_cons(Botan::ASN1_Type, Botan::ASN1_Class) [function] [call site] 00103
3 Botan::BER_Decoder::more_items() const [function] [call site] 00104
3 Botan::OID::OID() [function] [call site] 00105
4 Botan::ASN1_Object::ASN1_Object() [function] [call site] 00106
3 Botan::ASN1_String::ASN1_String(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00107
4 Botan::(anonymous namespace)::choose_encoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00108
5 Botan::CT::Mask<unsigned char>::set() [function] [call site] 00109
6 Botan::CT::Mask<unsigned char>::Mask(unsigned char) [function] [call site] 00110
5 Botan::CT::Mask<unsigned char>::as_bool() const [function] [call site] 00111
6 Botan::CT::Mask<unsigned char>::unpoisoned_value() const [function] [call site] 00112
7 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00113
7 void Botan::CT::unpoison<unsigned char>(unsigned char&) [function] [call site] 00114
8 void Botan::ignore_params<unsigned char&>(unsigned char&) [function] [call site] 00115
9 void Botan::ignore_param<unsigned char&>(unsigned char&) [function] [call site] 00116
5 Botan::CT::Mask<unsigned char>::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00117
6 unsigned char Botan::expand_top_bit<unsigned char>(unsigned char) [function] [call site] 00118
6 Botan::CT::Mask<unsigned char>::Mask(unsigned char) [function] [call site] 00119
5 Botan::CT::Mask<unsigned char>::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00120
5 Botan::CT::Mask<unsigned char>::is_within_range(unsigned char, unsigned char, unsigned char) [function] [call site] 00121
5 Botan::CT::Mask<unsigned char>::is_any_of(unsigned char, std::initializer_list<unsigned char>) [function] [call site] 00122
6 unsigned char Botan::expand_top_bit<unsigned char>(unsigned char) [function] [call site] 00123
6 Botan::CT::Mask<unsigned char>::Mask(unsigned char) [function] [call site] 00124
5 Botan::CT::operator|(Botan::CT::Mask<unsigned char>, Botan::CT::Mask<unsigned char>) [function] [call site] 00125
6 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00126
5 Botan::CT::Mask<unsigned char>::operator&=(Botan::CT::Mask<unsigned char>) [function] [call site] 00127
6 Botan::CT::Mask<unsigned char>::value() const [function] [call site] 00128
3 Botan::BER_Decoder::start_sequence() [function] [call site] 00129
3 Botan::BER_Decoder::decode(Botan::ASN1_Object&, Botan::ASN1_Type, Botan::ASN1_Class) [function] [call site] 00130
3 Botan::BER_Decoder::decode(Botan::ASN1_Object&, Botan::ASN1_Type, Botan::ASN1_Class) [function] [call site] 00131
3 Botan::BER_Decoder::end_cons() [function] [call site] 00132
3 Botan::X509_DN::add_attribute(Botan::OID const&, Botan::ASN1_String const&) [function] [call site] 00133
4 Botan::ASN1_String::empty() const [function] [call site] 00134
3 Botan::ASN1_String::~ASN1_String() [function] [call site] 00135
4 Botan::ASN1_Object::~ASN1_Object() [function] [call site] 00136
3 Botan::BER_Decoder::~BER_Decoder() [function] [call site] 00137
4 Botan::BER_Object::~BER_Object() [function] [call site] 00138
3 Botan::BER_Decoder::~BER_Decoder() [function] [call site] 00139
2 Botan::X509_DN::decode_from(Botan::BER_Decoder&) [function] [call site] 00140
2 Botan::BER_Decoder::~BER_Decoder() [function] [call site] 00141
2 Botan::operator==(Botan::X509_DN const&, Botan::X509_DN const&) [function] [call site] 00142
3 Botan::X509_DN::get_attributes() const [function] [call site] 00143
4 Botan::ASN1_String::value() const [function] [call site] 00144
4 void Botan::multimap_insert<Botan::OID, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::multimap<Botan::OID, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::less<Botan::OID>, std::__1::allocator<std::__1::pair<Botan::OID const, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >&, Botan::OID const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00145
3 Botan::X509_DN::get_attributes() const [function] [call site] 00146
3 Botan::operator!=(Botan::OID const&, Botan::OID const&) [function] [call site] 00147
4 Botan::OID::operator==(Botan::OID const&) const [function] [call site] 00148
3 Botan::(anonymous namespace)::x500_name_cmp(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00149
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00150
5 isspace [function] [call site] 00151
6 __ctype_b_loc [call site] 00152
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00153
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00154
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00155
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00156
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00157
4 Botan::(anonymous namespace)::(anonymous namespace)::caseless_cmp(char, char) [function] [call site] 00158
5 tolower [function] [call site] 00159
6 __ctype_tolower_loc [call site] 00160
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00161
4 Botan::(anonymous namespace)::(anonymous namespace)::is_space(char) [function] [call site] 00162
2 __cxa_begin_catch [call site] 00163
2 __cxa_end_catch [call site] 00164
2 Botan::operator<(Botan::X509_DN const&, Botan::X509_DN const&) [function] [call site] 00165
3 Botan::X509_DN::get_attributes() const [function] [call site] 00166
3 Botan::X509_DN::get_attributes() const [function] [call site] 00167
3 Botan::operator!=(Botan::OID const&, Botan::OID const&) [function] [call site] 00168
3 Botan::operator<(Botan::OID const&, Botan::OID const&) [function] [call site] 00169
4 Botan::OID::get_components() const [function] [call site] 00170
4 Botan::OID::get_components() const [function] [call site] 00171
3 Botan::assertion_failure(char const*, char const*, char const*, char const*, int) [function] [call site] 00172
4 __cxa_allocate_exception [call site] 00173
4 Botan::Internal_Error::Internal_Error(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00174
5 Botan::Exception::Exception(char const*, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00175
6 std::exception::exception() [function] [call site] 00176
6 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > Botan::fmt<char const*, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const* const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00177
3 Botan::(anonymous namespace)::x500_name_cmp(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00178
2 Botan::operator<(Botan::X509_DN const&, Botan::X509_DN const&) [function] [call site] 00179
2 abort [call site] 00180
2 abort [call site] 00181
2 abort [call site] 00182
2 Botan::X509_DN::~X509_DN() [function] [call site] 00183
3 Botan::ASN1_Object::~ASN1_Object() [function] [call site] 00184