Fuzz introspector: verify_name_match_fuzzer
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
122 356 5 :

['CBB_flush', 'ERR_put_error', 'cbb_buffer_add(cbb_buffer_st*, unsigned char**, unsigned long)', 'cbb_on_error(cbb_st*)', 'OPENSSL_memmove(void*, void const*, unsigned long)']

122 356 CBB_flush call site: 00165 /src/boringssl/crypto/bytestring/cbb.cc:192
58 58 1 :

['ERR_put_error']

58 58 OPENSSL_malloc call site: 00113 /src/boringssl/crypto/mem.cc:206
4 4 1 :

['cbb_on_error(cbb_st*)']

4 4 cbb_add_u(cbb_st*,unsignedlong,unsignedlong) call site: 00000 /src/boringssl/crypto/bytestring/cbb.cc:441
2 2 1 :

['OPENSSL_memory_alloc']

60 60 OPENSSL_malloc call site: 00110 /src/boringssl/crypto/mem.cc:191
2 2 1 :

['OPENSSL_memory_get_size']

2 88 OPENSSL_realloc call site: 00176 /src/boringssl/crypto/mem.cc:273
2 2 1 :

['OPENSSL_memory_free']

2 2 OPENSSL_free call site: 00146 /src/boringssl/crypto/mem.cc:243
0 7 1 :

['CBS_get_bytes']

0 7 cbs_get_any_asn1_element(cbs_st*,cbs_st*,unsignedint*,unsignedlong*,int*,int*,int) call site: 00000 /src/boringssl/crypto/bytestring/cbs.cc:379
0 7 1 :

['CBS_get_bytes']

0 7 cbs_get_any_asn1_element(cbs_st*,cbs_st*,unsignedint*,unsignedlong*,int*,int*,int) call site: 00000 /src/boringssl/crypto/bytestring/cbs.cc:387
0 0 None 58 58 cbb_buffer_reserve(cbb_buffer_st*,unsignedchar**,unsignedlong) call site: 00000 /src/boringssl/crypto/bytestring/cbb.cc:77
0 0 None 58 58 OPENSSL_malloc call site: 00110 /src/boringssl/crypto/mem.cc:187
0 0 None 58 58 OPENSSL_malloc call site: 00113 /src/boringssl/crypto/mem.cc:201
0 0 None 4 4 cbb_add_u(cbb_st*,unsignedlong,unsignedlong) call site: 00000 /src/boringssl/crypto/bytestring/cbb.cc:431

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 bssl::Span<unsigned char const>::Span<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&) [function] [call site] 00001
1 bssl::der::Input::Input(bssl::Span<unsigned char const>) [function] [call site] 00002
1 bssl::Span<unsigned char const>::Span<std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >, void, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > >(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&) [function] [call site] 00003
1 bssl::der::Input::Input(bssl::Span<unsigned char const>) [function] [call site] 00004
1 bssl::VerifyNameMatch(bssl::der::Input, bssl::der::Input) [function] [call site] 00005
2 bssl::(anonymous namespace)::VerifyNameMatchInternal(bssl::der::Input, bssl::der::Input, bssl::(anonymous namespace)::NameMatchType) [function] [call site] 00006
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00007
4 bssl::der::Input::data() const [function] [call site] 00008
5 bssl::Span<unsigned char const>::data() const [function] [call site] 00009
4 bssl::der::Input::size() const [function] [call site] 00010
5 bssl::Span<unsigned char const>::size() const [function] [call site] 00011
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00013
3 bssl::der::Parser::HasMore() [function] [call site] 00014
3 bssl::der::Parser::SkipTag(unsigned int) [function] [call site] 00016
4 bssl::der::Input::Input() [function] [call site] 00017
5 bssl::Span<unsigned char const>::Span() [function] [call site] 00018
6 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00019
4 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00020
5 bssl::der::Input::Input() [function] [call site] 00021
5 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00022
6 CBS_get_any_asn1_element [function] [call site] 00023
7 cbs_get_any_asn1_element(cbs_st*, cbs_st*, unsigned int*, unsigned long*, int*, int*, int) [function] [call site] 00024
8 __assert_fail [call site] 00025
8 __assert_fail [call site] 00026
8 parse_asn1_tag(cbs_st*, unsigned int*) [function] [call site] 00027
9 CBS_get_u8 [function] [call site] 00028
10 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00029
9 parse_base128_integer(cbs_st*, unsigned long*) [function] [call site] 00030
10 CBS_get_u8 [function] [call site] 00031
8 CBS_get_u8 [function] [call site] 00032
8 CBS_get_bytes [function] [call site] 00034
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00035
8 cbs_get_u(cbs_st*, unsigned long*, unsigned long) [function] [call site] 00037
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00038
8 CBS_get_bytes [function] [call site] 00039
6 CBS_skip [function] [call site] 00040
7 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00041
6 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00045
7 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00046
5 bssl::der::Parser::Advance() [function] [call site] 00047
5 abort [call site] 00049
3 bssl::der::Parser::SkipTag(unsigned int) [function] [call site] 00050
3 bssl::der::Parser::HasMore() [function] [call site] 00051
3 bssl::der::Parser::HasMore() [function] [call site] 00052
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00053
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00054
3 bssl::der::Parser::HasMore() [function] [call site] 00055
3 bssl::der::Parser::Parser() [function] [call site] 00056
3 bssl::der::Parser::ReadConstructed(unsigned int, bssl::der::Parser*) [function] [call site] 00058
4 bssl::der::Input::Input() [function] [call site] 00059
4 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00060
4 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00061
3 bssl::der::Parser::ReadConstructed(unsigned int, bssl::der::Parser*) [function] [call site] 00062
3 bssl::(anonymous namespace)::VerifyRdnMatch(bssl::der::Parser*, bssl::der::Parser*) [function] [call site] 00063
4 bssl::ReadRdn(bssl::der::Parser*, std::__1::vector<bssl::X509NameAttribute, std::__1::allocator<bssl::X509NameAttribute> >*) [function] [call site] 00064
5 bssl::der::Parser::HasMore() [function] [call site] 00065
5 bssl::der::Parser::Parser() [function] [call site] 00066
5 bssl::der::Parser::ReadSequence(bssl::der::Parser*) [function] [call site] 00067
6 bssl::der::Parser::ReadConstructed(unsigned int, bssl::der::Parser*) [function] [call site] 00068
5 bssl::der::Input::Input() [function] [call site] 00069
5 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00070
5 bssl::der::Input::Input() [function] [call site] 00071
5 bssl::der::Parser::ReadTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00072
6 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00073
6 bssl::der::Parser::Advance() [function] [call site] 00074
6 abort [call site] 00075
5 bssl::der::Parser::HasMore() [function] [call site] 00076
5 bssl::X509NameAttribute::X509NameAttribute(bssl::der::Input, unsigned int, bssl::der::Input) [function] [call site] 00077
4 bssl::ReadRdn(bssl::der::Parser*, std::__1::vector<bssl::X509NameAttribute, std::__1::allocator<bssl::X509NameAttribute> >*) [function] [call site] 00078
4 bssl::der::operator==(bssl::der::Input, bssl::der::Input) [function] [call site] 00079
5 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00080
6 bssl::der::Input::data() const [function] [call site] 00081
6 bssl::der::Input::size() const [function] [call site] 00082
5 bssl::internal::operator==(bssl::Span<unsigned char const>, bssl::Span<unsigned char const>) [function] [call site] 00083
6 bssl::Span<unsigned char const>::begin() const [function] [call site] 00084
6 bssl::Span<unsigned char const>::end() const [function] [call site] 00085
4 bssl::(anonymous namespace)::VerifyValueMatch(bssl::X509NameAttribute, bssl::X509NameAttribute) [function] [call site] 00086
5 bssl::(anonymous namespace)::IsNormalizableDirectoryString(unsigned int) [function] [call site] 00087
5 bssl::(anonymous namespace)::IsNormalizableDirectoryString(unsigned int) [function] [call site] 00088
5 bssl::CertErrors::CertErrors() [function] [call site] 00089
5 bssl::(anonymous namespace)::NormalizeValue(bssl::X509NameAttribute, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bssl::CertErrors*) [function] [call site] 00090
6 abort [call site] 00091
6 bssl::X509NameAttribute::ValueAsStringUnsafe(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const [function] [call site] 00092
7 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00093
7 bssl::BytesAsStringView(bssl::Span<unsigned char const>) [function] [call site] 00094
8 bssl::Span<unsigned char const>::data() const [function] [call site] 00095
8 bssl::Span<unsigned char const>::size() const [function] [call site] 00096
7 bssl::der::ParseUniversalString(bssl::der::Input, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00097
8 bssl::der::Input::size() const [function] [call site] 00098
8 bssl::der::Input::data() const [function] [call site] 00099
8 bssl::der::Input::size() const [function] [call site] 00100
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::StackAllocated() [function] [call site] 00102
9 CBB_zero [function] [call site] 00103
10 OPENSSL_memset(void*, int, unsigned long) [function] [call site] 00104
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00105
8 bssl::der::Input::size() const [function] [call site] 00106
8 CBB_init [function] [call site] 00107
9 OPENSSL_malloc [function] [call site] 00109
10 should_fail_allocation() [function] [call site] 00110
10 __assert_fail [call site] 00111
10 __assert_fail [call site] 00112
10 OPENSSL_memory_alloc [call site] 00113
10 __asan_poison_memory_region(void const*, unsigned long) [function] [call site] 00114
10 ERR_put_error [function] [call site] 00115
11 err_get_state() [function] [call site] 00116
12 CRYPTO_get_thread_local [function] [call site] 00117
13 CRYPTO_once [function] [call site] 00118
14 pthread_once [call site] 00119
14 abort [call site] 00120
13 thread_local_init() [function] [call site] 00121
14 pthread_key_create [call site] 00122
14 thread_local_destructor(void*) [function] [call site] 00123
15 pthread_mutex_lock [call site] 00124
15 OPENSSL_memcpy(void*, void const*, unsigned long) [function] [call site] 00125
15 pthread_mutex_unlock [call site] 00126
13 pthread_getspecific [call site] 00127
12 OPENSSL_memset(void*, int, unsigned long) [function] [call site] 00128
12 CRYPTO_set_thread_local [function] [call site] 00129
13 CRYPTO_once [function] [call site] 00130
13 thread_local_init() [function] [call site] 00131
13 pthread_getspecific [call site] 00132
13 OPENSSL_memset(void*, int, unsigned long) [function] [call site] 00133
13 pthread_setspecific [call site] 00134
13 pthread_mutex_lock [call site] 00135
13 pthread_mutex_unlock [call site] 00136
12 err_state_free(void*) [function] [call site] 00137
13 err_clear((anonymous namespace)::err_error_st*) [function] [call site] 00138
14 OPENSSL_memset(void*, int, unsigned long) [function] [call site] 00139
11 __errno_location [call site] 00140
11 err_clear((anonymous namespace)::err_error_st*) [function] [call site] 00141
9 cbb_init(cbb_st*, unsigned char*, unsigned long, int) [function] [call site] 00142
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::~StackAllocated() [function] [call site] 00143
9 CBB_cleanup [function] [call site] 00144
10 __assert_fail [call site] 00145
10 OPENSSL_free [function] [call site] 00146
11 OPENSSL_memory_free [call site] 00147
11 __asan_unpoison_memory_region(void const*, unsigned long) [function] [call site] 00148
11 OPENSSL_cleanse [function] [call site] 00149
12 OPENSSL_memset(void*, int, unsigned long) [function] [call site] 00150
9 __clang_call_terminate [call site] 00151
10 __cxa_begin_catch [call site] 00152
8 CBS_get_utf32_be [function] [call site] 00154
9 CBS_get_u32 [function] [call site] 00155
10 cbs_get_u(cbs_st*, unsigned long*, unsigned long) [function] [call site] 00156
9 is_valid_code_point(unsigned int) [function] [call site] 00157
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00158
8 CBB_add_utf8 [function] [call site] 00159
9 is_valid_code_point(unsigned int) [function] [call site] 00160
9 CBB_add_u8 [function] [call site] 00161
10 cbb_add_u(cbb_st*, unsigned long, unsigned long) [function] [call site] 00162
11 CBB_add_space [function] [call site] 00163
12 CBB_flush [function] [call site] 00164
13 cbb_get_base(cbb_st*) [function] [call site] 00165
13 __assert_fail [call site] 00166
13 __assert_fail [call site] 00167
13 CBB_flush [function] [call site] 00168
14 __assert_fail [call site] 00169
14 ERR_put_error [function] [call site] 00170
14 cbb_buffer_add(cbb_buffer_st*, unsigned char**, unsigned long) [function] [call site] 00171
15 cbb_buffer_reserve(cbb_buffer_st*, unsigned char**, unsigned long) [function] [call site] 00172
16 ERR_put_error [function] [call site] 00173
16 ERR_put_error [function] [call site] 00174
16 OPENSSL_realloc [function] [call site] 00175
17 OPENSSL_malloc [function] [call site] 00176
17 OPENSSL_memory_get_size [call site] 00177
17 __asan_unpoison_memory_region(void const*, unsigned long) [function] [call site] 00178
17 __asan_poison_memory_region(void const*, unsigned long) [function] [call site] 00179
17 OPENSSL_malloc [function] [call site] 00180
17 OPENSSL_free [function] [call site] 00181
14 OPENSSL_memmove(void*, void const*, unsigned long) [function] [call site] 00182
14 ERR_put_error [function] [call site] 00183
14 cbb_on_error(cbb_st*) [function] [call site] 00184
15 cbb_get_base(cbb_st*) [function] [call site] 00185
12 cbb_get_base(cbb_st*) [function] [call site] 00186
12 cbb_buffer_add(cbb_buffer_st*, unsigned char**, unsigned long) [function] [call site] 00187
11 cbb_on_error(cbb_st*) [function] [call site] 00188
9 CBB_add_u8 [function] [call site] 00189
9 CBB_add_u8 [function] [call site] 00190
9 CBB_add_u8 [function] [call site] 00191
9 CBB_add_u8 [function] [call site] 00192
9 CBB_add_u8 [function] [call site] 00193
9 CBB_add_u8 [function] [call site] 00194
9 CBB_add_u8 [function] [call site] 00195
9 CBB_add_u8 [function] [call site] 00196
9 CBB_add_u8 [function] [call site] 00197
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00198
8 CBB_data [function] [call site] 00199
9 __assert_fail [call site] 00200
8 CBB_len [function] [call site] 00201
9 __assert_fail [call site] 00202
9 __assert_fail [call site] 00203
7 bssl::der::ParseBmpString(bssl::der::Input, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00204
8 bssl::der::Input::size() const [function] [call site] 00205
8 bssl::der::Input::data() const [function] [call site] 00206
8 bssl::der::Input::size() const [function] [call site] 00207
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::StackAllocated() [function] [call site] 00209
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00210
8 bssl::der::Input::size() const [function] [call site] 00211
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::~StackAllocated() [function] [call site] 00213
8 CBS_get_ucs2_be [function] [call site] 00215
9 CBS_get_u16 [function] [call site] 00216
10 cbs_get_u(cbs_st*, unsigned long*, unsigned long) [function] [call site] 00217
9 is_valid_code_point(unsigned int) [function] [call site] 00218
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00219
8 CBB_add_utf8 [function] [call site] 00220
8 bssl::internal::StackAllocated<cbb_st, void, &CBB_zero, &CBB_cleanup>::get() [function] [call site] 00221
7 __assert_fail [call site] 00224
6 bssl::CreateCertErrorParams1SizeT(char const*, unsigned long) [function] [call site] 00225
7 abort [call site] 00226
6 bssl::CertErrors::AddError(void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00227
7 bssl::CertErrors::Add(bssl::CertError::Severity, void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00228
6 bssl::(anonymous namespace)::NormalizeDirectoryString(bssl::(anonymous namespace)::CharsetEnforcement, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00229
6 bssl::(anonymous namespace)::NormalizeDirectoryString(bssl::(anonymous namespace)::CharsetEnforcement, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00230
6 bssl::(anonymous namespace)::NormalizeDirectoryString(bssl::(anonymous namespace)::CharsetEnforcement, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00231
6 bssl::CreateCertErrorParams1SizeT(char const*, unsigned long) [function] [call site] 00232
6 bssl::CertErrors::AddError(void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00233
5 bssl::(anonymous namespace)::NormalizeValue(bssl::X509NameAttribute, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, bssl::CertErrors*) [function] [call site] 00234
5 bssl::CertErrors::~CertErrors() [function] [call site] 00235
5 bssl::der::operator==(bssl::der::Input, bssl::der::Input) [function] [call site] 00236
1 bssl::VerifyNameMatch(bssl::der::Input, bssl::der::Input) [function] [call site] 00237
1 abort [call site] 00238