Fuzz introspector: ocsp_parse_ocsp_response_data_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
2 2 1 :

['abort']

2 2 bssl::Span ::operator[](unsignedlong)const call site: 00000 /src/boringssl/include/openssl/span.h:165
2 2 1 :

['abort']

2 2 bssl::Span ::subspan(unsignedlong,unsignedlong)const call site: 00000 /src/boringssl/include/openssl/span.h:173
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 2 9 bssl::der::Parser::ReadTagAndValue(unsignedint*,bssl::der::Input*) call site: 00000 /src/boringssl/pki/parser.cc:62
0 0 None 0 112 bssl::(anonymousnamespace)::ParseResponderID(bssl::der::Input,bssl::OCSPResponseData::ResponderID*) call site: 00000 /src/boringssl/pki/ocsp.cc:257
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 12 bssl::der::(anonymousnamespace)::GetUnsignedIntegerLength(bssl::der::Input) call site: 00000 /src/boringssl/pki/parse_values.cc:151
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 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

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::OCSPResponseData::OCSPResponseData() [function] [call site] 00003
2 bssl::OCSPResponseData::ResponderID::ResponderID() [function] [call site] 00004
3 bssl::der::Input::Input() [function] [call site] 00005
4 bssl::Span<unsigned char const>::Span() [function] [call site] 00006
5 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00007
2 bssl::der::Input::Input() [function] [call site] 00008
1 bssl::ParseOCSPResponseData(bssl::der::Input, bssl::OCSPResponseData*) [function] [call site] 00009
2 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00010
3 bssl::der::Input::data() const [function] [call site] 00011
4 bssl::Span<unsigned char const>::data() const [function] [call site] 00012
3 bssl::der::Input::size() const [function] [call site] 00013
4 bssl::Span<unsigned char const>::size() const [function] [call site] 00014
2 bssl::der::Parser::Parser() [function] [call site] 00016
2 bssl::der::Parser::ReadSequence(bssl::der::Parser*) [function] [call site] 00018
3 bssl::der::Parser::ReadConstructed(unsigned int, bssl::der::Parser*) [function] [call site] 00019
4 bssl::der::Input::Input() [function] [call site] 00020
4 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00021
5 bssl::der::Input::Input() [function] [call site] 00022
5 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00023
6 CBS_get_any_asn1_element [function] [call site] 00024
7 cbs_get_any_asn1_element(cbs_st*, cbs_st*, unsigned int*, unsigned long*, int*, int*, int) [function] [call site] 00025
8 __assert_fail [call site] 00026
8 __assert_fail [call site] 00027
8 parse_asn1_tag(cbs_st*, unsigned int*) [function] [call site] 00028
9 CBS_get_u8 [function] [call site] 00029
10 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00030
9 parse_base128_integer(cbs_st*, unsigned long*) [function] [call site] 00031
10 CBS_get_u8 [function] [call site] 00032
8 CBS_get_u8 [function] [call site] 00033
8 CBS_get_bytes [function] [call site] 00035
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00036
8 cbs_get_u(cbs_st*, unsigned long*, unsigned long) [function] [call site] 00038
9 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00039
8 CBS_get_bytes [function] [call site] 00040
6 CBS_skip [function] [call site] 00041
7 cbs_get(cbs_st*, unsigned char const**, unsigned long) [function] [call site] 00042
6 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00046
5 bssl::der::Parser::Advance() [function] [call site] 00047
5 abort [call site] 00049
4 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00050
2 bssl::der::Parser::HasMore() [function] [call site] 00051
2 bssl::der::Input::Input() [function] [call site] 00053
2 bssl::der::Parser::ReadOptionalTag(unsigned int, bssl::der::Input*, bool*) [function] [call site] 00054
3 bssl::der::Parser::ReadOptionalTag(unsigned int, std::__1::optional<bssl::der::Input>*) [function] [call site] 00055
4 bssl::der::Parser::HasMore() [function] [call site] 00056
4 bssl::der::Input::Input() [function] [call site] 00057
4 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00058
4 bssl::der::Parser::Advance() [function] [call site] 00059
4 abort [call site] 00060
3 bssl::der::Input::Input() [function] [call site] 00061
3 bssl::der::Input std::__1::optional<bssl::der::Input>::value_or[abi:ne180100]<bssl::der::Input>(bssl::der::Input&&) const & [function] [call site] 00062
4 std::__1::__optional_storage_base<bssl::der::Input, false>::__get[abi:ne180100]() const & [function] [call site] 00063
2 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00064
2 bssl::der::Parser::ReadUint8(unsigned char*) [function] [call site] 00065
3 bssl::der::Input::Input() [function] [call site] 00066
3 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00067
3 bssl::der::ParseUint8(bssl::der::Input, unsigned char*) [function] [call site] 00068
4 bssl::der::ParseUint64(bssl::der::Input, unsigned long*) [function] [call site] 00069
5 bssl::der::IsValidInteger(bssl::der::Input, bool*) [function] [call site] 00070
6 bssl::der::Input::data() const [function] [call site] 00071
6 bssl::der::Input::size() const [function] [call site] 00072
6 CBS_is_valid_asn1_integer [function] [call site] 00074
7 CBS_get_u8 [function] [call site] 00075
7 CBS_get_u8 [function] [call site] 00076
5 bssl::der::(anonymous namespace)::GetUnsignedIntegerLength(bssl::der::Input) [function] [call site] 00077
6 bssl::der::ByteReader::ByteReader(bssl::der::Input) [function] [call site] 00078
7 bssl::Span<unsigned char const>::Span<bssl::der::Input, void, bssl::der::Input>(bssl::der::Input const&) [function] [call site] 00079
8 bssl::der::Input::data() const [function] [call site] 00080
8 bssl::der::Input::size() const [function] [call site] 00081
6 bssl::der::ByteReader::ReadByte(unsigned char*) [function] [call site] 00082
7 bssl::der::ByteReader::HasMore() [function] [call site] 00083
8 bssl::Span<unsigned char const>::empty() const [function] [call site] 00084
7 bssl::Span<unsigned char const>::operator[](unsigned long) const [function] [call site] 00085
8 abort [call site] 00086
7 bssl::der::ByteReader::Advance(unsigned long) [function] [call site] 00087
8 bssl::Span<unsigned char const>::size() const [function] [call site] 00088
8 abort [call site] 00089
8 bssl::Span<unsigned char const>::subspan(unsigned long, unsigned long) const [function] [call site] 00090
9 abort [call site] 00091
9 bssl::Span<unsigned char const>::Span(unsigned char const*, unsigned long) [function] [call site] 00092
6 bssl::der::Input::size() const [function] [call site] 00093
6 bssl::der::Input::size() const [function] [call site] 00094
6 bssl::der::Input::size() const [function] [call site] 00095
5 bssl::der::ByteReader::ByteReader(bssl::der::Input) [function] [call site] 00096
5 bssl::der::ByteReader::ReadByte(unsigned char*) [function] [call site] 00097
2 bssl::der::Parser::HasMore() [function] [call site] 00098
2 bssl::der::Input::Input() [function] [call site] 00099
2 bssl::der::Parser::ReadRawTLV(bssl::der::Input*) [function] [call site] 00100
3 CBS_get_any_asn1_element [function] [call site] 00101
3 bssl::der::Input::Input(unsigned char const*, unsigned long) [function] [call site] 00104
2 bssl::(anonymous namespace)::ParseResponderID(bssl::der::Input, bssl::OCSPResponseData::ResponderID*) [function] [call site] 00105
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00106
3 bssl::der::Input::Input() [function] [call site] 00107
3 bssl::der::Parser::ReadTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00108
4 bssl::der::Parser::PeekTagAndValue(unsigned int*, bssl::der::Input*) [function] [call site] 00109
4 bssl::der::Parser::Advance() [function] [call site] 00110
4 abort [call site] 00111
3 bssl::der::Parser::Parser(bssl::der::Input) [function] [call site] 00112
3 bssl::der::Input::Input() [function] [call site] 00113
3 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00114
3 bssl::der::Parser::HasMore() [function] [call site] 00115
3 bssl::der::Input::size() const [function] [call site] 00116
3 bssl::der::Parser::HasMore() [function] [call site] 00117
2 bssl::der::Parser::ReadGeneralizedTime(bssl::der::GeneralizedTime*) [function] [call site] 00118
3 bssl::der::Input::Input() [function] [call site] 00119
3 bssl::der::Parser::ReadTag(unsigned int, bssl::der::Input*) [function] [call site] 00120
3 bssl::der::ParseGeneralizedTime(bssl::der::Input, bssl::der::GeneralizedTime*) [function] [call site] 00121
4 bssl::der::ByteReader::ByteReader(bssl::der::Input) [function] [call site] 00122
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned short>(bssl::der::ByteReader&, unsigned long, unsigned short*) [function] [call site] 00123
5 bssl::der::ByteReader::ReadByte(unsigned char*) [function] [call site] 00124
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned char>(bssl::der::ByteReader&, unsigned long, unsigned char*) [function] [call site] 00125
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned char>(bssl::der::ByteReader&, unsigned long, unsigned char*) [function] [call site] 00126
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned char>(bssl::der::ByteReader&, unsigned long, unsigned char*) [function] [call site] 00127
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned char>(bssl::der::ByteReader&, unsigned long, unsigned char*) [function] [call site] 00128
4 bool bssl::der::(anonymous namespace)::DecimalStringToUint<unsigned char>(bssl::der::ByteReader&, unsigned long, unsigned char*) [function] [call site] 00129
4 bssl::der::ByteReader::ReadByte(unsigned char*) [function] [call site] 00130
4 bssl::der::ByteReader::HasMore() [function] [call site] 00131
4 bssl::der::(anonymous namespace)::ValidateGeneralizedTime(bssl::der::GeneralizedTime const&) [function] [call site] 00132
5 abort [call site] 00133
2 bssl::der::Parser::Parser() [function] [call site] 00134
2 bssl::der::Parser::ReadSequence(bssl::der::Parser*) [function] [call site] 00135
2 bssl::der::Parser::HasMore() [function] [call site] 00136
2 bssl::der::Input::Input() [function] [call site] 00137
2 bssl::der::Parser::ReadRawTLV(bssl::der::Input*) [function] [call site] 00138
2 bssl::der::Parser::ReadOptionalTag(unsigned int, bssl::der::Input*, bool*) [function] [call site] 00139
2 bssl::der::Parser::HasMore() [function] [call site] 00140
1 bssl::OCSPResponseData::~OCSPResponseData() [function] [call site] 00141