Fuzz introspector: parse_crldp_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
20 39 4 :

['bssl::der::Input::subspan(unsigned long, unsigned long) const', 'std::__1::pair & std::__1::vector , std::__1::allocator > >::emplace_back (bssl::der::Input&, bssl::der::Input&)', 'bssl::der::Input::first(unsigned long) const', 'bssl::IsValidNetmask(bssl::der::Input)']

24 87 bssl::ParseGeneralName(bssl::der::Input,bssl::GeneralNames::ParseGeneralNameIPAddressType,bssl::GeneralNames*,bssl::CertErrors*) call site: 00000 /src/boringssl/pki/general_names.cc:175
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 24 327 bssl::ParseGeneralName(bssl::der::Input,bssl::GeneralNames::ParseGeneralNameIPAddressType,bssl::GeneralNames*,bssl::CertErrors*) call site: 00000 /src/boringssl/pki/general_names.cc:116
0 0 None 2 9 bssl::der::Parser::ReadTagAndValue(unsignedint*,bssl::der::Input*) call site: 00000 /src/boringssl/pki/parser.cc:62
0 0 None 0 100 bssl::der::Parser::ReadConstructed(unsignedint,bssl::der::Parser*) call site: 00000 /src/boringssl/pki/parser.cc:123
0 0 None 0 49 cbs_get_any_asn1_element(cbs_st*,cbs_st*,unsignedint*,unsignedlong*,int*,int*,int) call site: 00000 /src/boringssl/crypto/bytestring/cbs.cc:312
0 0 None 0 49 cbs_get_any_asn1_element(cbs_st*,cbs_st*,unsignedint*,unsignedlong*,int*,int*,int) call site: 00000 /src/boringssl/crypto/bytestring/cbs.cc:315
0 0 None 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:354
0 0 None 0 4 bssl::(anonymousnamespace)::ParseDistributionPointName(bssl::der::Input,bssl::ParsedDistributionPoint*) call site: 00000 /src/boringssl/pki/parse_certificate.cc:181
0 0 None 0 0 cbs_get_any_asn1_element(cbs_st*,cbs_st*,unsignedint*,unsignedlong*,int*,int*,int) call site: 00000 /src/boringssl/crypto/bytestring/cbs.cc:394
0 0 None 0 0 bssl::der::Parser::Advance() call site: 00000 /src/boringssl/pki/parser.cc:42

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00001
2 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00002
1 bssl::ParseCrlDistributionPoints(bssl::der::Input, std::__1::vector<bssl::ParsedDistributionPoint, std::__1::allocator<bssl::ParsedDistributionPoint> >*) [function] [call site] 00003
2 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00004
3 bssl::der::Input::data() const [function] [call site] 00005
4 bssl::Span<unsigned char const>::data() const [function] [call site] 00006
3 bssl::der::Input::size() const [function] [call site] 00007
4 bssl::Span<unsigned char const>::size() const [function] [call site] 00008
2 bssl::der::Parser::Parser() [function] [call site] 00010
2 bssl::der::Parser::ReadSequence(bssl::der::Parser*) [function] [call site] 00012
3 bssl::der::Parser::ReadConstructed(unsigned int, bssl::der::Parser*) [function] [call site] 00013
4 bssl::der::Input::Input() [function] [call site] 00014
5 bssl::Span<unsigned char const>::Span() [function] [call site] 00015
6 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00016
4 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00017
5 bssl::der::Input::Input() [function] [call site] 00018
5 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00019
6 CBS_get_any_asn1_element [function] [call site] 00020
7 cbs_get_any_asn1_element(cbs_st*, cbs_st*, unsigned int*, unsigned long*, int*, int*, int) [function] [call site] 00021
8 __assert_fail [call site] 00022
8 __assert_fail [call site] 00023
8 parse_asn1_tag(cbs_st*, unsigned int*) [function] [call site] 00024
9 CBS_get_u8 [function] [call site] 00025
10 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00026
9 parse_base128_integer(cbs_st*, unsigned long*) [function] [call site] 00027
10 CBS_get_u8 [function] [call site] 00028
8 CBS_get_u8 [function] [call site] 00029
8 CBS_get_bytes [function] [call site] 00031
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00032
8 cbs_get_u(cbs_st*, unsigned long*, unsigned long) [function] [call site] 00034
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00035
8 CBS_get_bytes [function] [call site] 00036
6 CBS_skip [function] [call site] 00037
7 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00038
6 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00042
5 bssl::der::Parser::Advance() [function] [call site] 00043
5 abort [call site] 00045
4 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00046
2 bssl::der::Parser::HasMore() [function] [call site] 00047
2 bssl::der::Parser::HasMore() [function] [call site] 00049
2 bssl::der::Parser::HasMore() [function] [call site] 00050
2 bssl::(anonymous namespace)::ParseAndAddDistributionPoint(bssl::der::Parser*, std::__1::vector<bssl::ParsedDistributionPoint, std::__1::allocator<bssl::ParsedDistributionPoint> >*) [function] [call site] 00051
3 bssl::ParsedDistributionPoint::ParsedDistributionPoint() [function] [call site] 00052
3 bssl::der::Parser::Parser() [function] [call site] 00053
3 bssl::der::Parser::ReadSequence(bssl::der::Parser*) [function] [call site] 00054
3 bssl::ParsedDistributionPoint::~ParsedDistributionPoint() [function] [call site] 00055
3 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00056
4 bssl::der::Parser::HasMore() [function] [call site] 00057
4 bssl::der::Input::Input() [function] [call site] 00058
4 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00059
4 bssl::der::Parser::Advance() [function] [call site] 00060
4 abort [call site] 00061
3 std::__1::optional<bssl::der::Input>::operator*[abi:ne180100]() & [function] [call site] 00062
4 std::__1::__optional_storage_base<bssl::der::Input, false>::__get[abi:ne180100]() & [function] [call site] 00063
3 bssl::(anonymous namespace)::ParseDistributionPointName(bssl::der::Input, bssl::ParsedDistributionPoint*) [function] [call site] 00064
4 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00065
4 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00066
4 bssl::CertErrors::CertErrors() [function] [call site] 00067
4 std::__1::optional<bssl::der::Input>::operator*[abi:ne180100]() & [function] [call site] 00068
4 bssl::GeneralNames::CreateFromValue(bssl::der::Input, bssl::CertErrors*) [function] [call site] 00069
5 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00070
5 bssl::der::Parser::HasMore() [function] [call site] 00071
5 bssl::CertErrors::AddError(void const*) [function] [call site] 00072
6 bssl::CertErrors::AddError(void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00073
7 bssl::CertErrors::Add(bssl::CertError::Severity, void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00074
5 bssl::der::Parser::HasMore() [function] [call site] 00075
5 bssl::der::Input::Input() [function] [call site] 00076
5 bssl::der::Parser::ReadRawTLV(bssl::der::Input*) [function] [call site] 00077
6 CBS_get_any_asn1_element [function] [call site] 00078
6 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00081
5 bssl::CertErrors::AddError(void const*) [function] [call site] 00082
5 bssl::ParseGeneralName(bssl::der::Input, bssl::GeneralNames::ParseGeneralNameIPAddressType, bssl::GeneralNames*, bssl::CertErrors*) [function] [call site] 00083
6 abort [call site] 00084
6 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00085
6 bssl::der::Input::Input() [function] [call site] 00086
6 bssl::der::Parser::ReadTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00087
7 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00088
7 bssl::der::Parser::Advance() [function] [call site] 00089
7 abort [call site] 00090
6 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00091
7 bssl::der::Input::data() const [function] [call site] 00092
7 bssl::der::Input::size() const [function] [call site] 00093
6 bssl::BytesAsStringView(bssl::Span<unsigned char const>) [function] [call site] 00094
7 bssl::Span<unsigned char const>::data() const [function] [call site] 00095
7 bssl::Span<unsigned char const>::size() const [function] [call site] 00096
6 bssl::string_util::IsAscii(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00097
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00098
6 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00099
6 bssl::BytesAsStringView(bssl::Span<unsigned char const>) [function] [call site] 00100
6 bssl::string_util::IsAscii(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00101
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00102
6 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00103
6 bssl::der::Input::Input() [function] [call site] 00104
6 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00105
6 bssl::der::Parser::HasMore() [function] [call site] 00106
6 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00107
6 bssl::BytesAsStringView(bssl::Span<unsigned char const>) [function] [call site] 00108
6 bssl::string_util::IsAscii(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00109
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00110
6 bssl::der::Input::size() const [function] [call site] 00111
6 bssl::der::Input::size() const [function] [call site] 00112
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00113
6 abort [call site] 00114
6 bssl::der::Input::size() const [function] [call site] 00115
6 bssl::der::Input::size() const [function] [call site] 00116
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00117
6 bssl::der::Input::size() const [function] [call site] 00118
6 bssl::der::Input::first(unsigned long) const [function] [call site] 00119
7 bssl::Span<unsigned char const>::first(unsigned long) const [function] [call site] 00120
8 abort [call site] 00121
8 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00122
7 bssl::der::Input::Input(bssl::Span<unsigned char const>) [function] [call site] 00123
6 bssl::der::Input::size() const [function] [call site] 00124
6 bssl::der::Input::subspan(unsigned long, unsigned long) const [function] [call site] 00125
7 bssl::Span<unsigned char const>::subspan(unsigned long, unsigned long) const [function] [call site] 00126
8 abort [call site] 00127
8 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00128
7 bssl::der::Input::Input(bssl::Span<unsigned char const>) [function] [call site] 00129
6 bssl::IsValidNetmask(bssl::der::Input) [function] [call site] 00130
7 bssl::der::Input::size() const [function] [call site] 00131
7 bssl::der::Input::operator[](unsigned long) const [function] [call site] 00132
8 bssl::Span<unsigned char const>::operator[](unsigned long) const [function] [call site] 00133
9 abort [call site] 00134
7 bssl::der::Input::size() const [function] [call site] 00135
7 bssl::der::Input::operator[](unsigned long) const [function] [call site] 00136
6 bssl::CertErrors::AddError(void const*) [function] [call site] 00137
6 bssl::CreateCertErrorParams1SizeT(char const*, unsigned long) [function] [call site] 00138
7 abort [call site] 00139
6 bssl::CertErrors::AddError(void const*, std::__1::unique_ptr<bssl::CertErrorParams, std::__1::default_delete<bssl::CertErrorParams> >) [function] [call site] 00140
6 abort [call site] 00141
5 bssl::CertErrors::AddError(void const*) [function] [call site] 00142
4 bssl::CertErrors::~CertErrors() [function] [call site] 00143
4 bssl::der::Parser::HasMore() [function] [call site] 00144
4 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00145
4 bssl::der::Parser::HasMore() [function] [call site] 00146
3 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00147
3 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00148
3 bssl::der::Parser::HasMore() [function] [call site] 00149
1 abort [call site] 00150