Fuzz introspector: fuzz_target_packetcache
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
543 543 2 :

['segmentDNSNameRaw(char const*, unsigned long)', 'boost::container::basic_string , void>::operator=(boost::container::basic_string , void>&&)']

622 622 DNSName::DNSName(std::__1::basic_string_view >) call site: 00000 /src/pdns/pdns/dnsname.cc:64
0 0 None 903 903 DNSName::DNSName(std::__1::basic_string_view >) call site: 00000 /src/pdns/pdns/dnsname.cc:81
0 0 None 340 1246 DNSName::packetParser(charconst*,int,int,bool,unsignedshort*,unsignedshort*,unsignedint*,int,unsignedshort) call site: 00000 /src/pdns/pdns/dnsname.cc:124
0 0 None 308 902 DNSName::packetParser(charconst*,int,int,bool,unsignedshort*,unsignedshort*,unsignedint*,int,unsignedshort) call site: 00000 /src/pdns/pdns/dnsname.cc:133
0 0 None 202 796 DNSName::DNSName(charconst*,int,int,bool,unsignedshort*,unsignedshort*,unsignedint*,unsignedshort) call site: 00000 /src/pdns/pdns/dnsname.cc:105
0 0 None 53 53 DNSName::DNSName(std::__1::basic_string_view >) call site: 00000 /src/pdns/pdns/dnsname.cc:72
0 0 None 53 53 DNSName::DNSName(std::__1::basic_string_view >) call site: 00000 /src/pdns/pdns/dnsname.cc:83
0 0 None 53 53 DNSName::DNSName(std::__1::basic_string_view >) call site: 00000 /src/pdns/pdns/dnsname.cc:86
0 0 None 10 10 DNSName::packetParser(charconst*,int,int,bool,unsignedshort*,unsignedshort*,unsignedint*,int,unsignedshort) call site: 00000 /src/pdns/pdns/dnsname.cc:126
0 0 None 10 10 DNSName::packetParser(charconst*,int,int,bool,unsignedshort*,unsignedshort*,unsignedint*,int,unsignedshort) call site: 00000 /src/pdns/pdns/dnsname.cc:163
0 0 None 10 10 DNSName::appendRawLabel(charconst*,unsignedint) call site: 00000 /src/pdns/pdns/dnsname.cc:342
0 0 None 10 10 DNSName::appendRawLabel(charconst*,unsignedint) call site: 00000 /src/pdns/pdns/dnsname.cc:344

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __cxa_guard_acquire [call site] 00001
1 PacketCache::canHashPacket(std::__1::basic_string , std::__1::allocator > const&, std::__1::unordered_set , std::__1::equal_to , std::__1::allocator > const&) [function] [call site] 00002
2 PacketCache::hashHeaderAndQName(std::__1::basic_string , std::__1::allocator > const&, unsigned long&) [function] [call site] 00003
3 __assert_fail [call site] 00004
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00005
4 burtlemix(unsigned int&, unsigned int&, unsigned int&) [function] [call site] 00006
4 burtlemix(unsigned int&, unsigned int&, unsigned int&) [function] [call site] 00007
3 burtleCI(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00008
4 dns_tolower(unsigned char) [function] [call site] 00009
4 dns_tolower(unsigned char) [function] [call site] 00010
4 dns_tolower(unsigned char) [function] [call site] 00011
4 burtlemix(unsigned int&, unsigned int&, unsigned int&) [function] [call site] 00012
4 dns_tolower(unsigned char) [function] [call site] 00013
4 dns_tolower(unsigned char) [function] [call site] 00014
4 dns_tolower(unsigned char) [function] [call site] 00015
4 dns_tolower(unsigned char) [function] [call site] 00016
4 dns_tolower(unsigned char) [function] [call site] 00017
4 dns_tolower(unsigned char) [function] [call site] 00018
4 dns_tolower(unsigned char) [function] [call site] 00019
4 dns_tolower(unsigned char) [function] [call site] 00020
4 dns_tolower(unsigned char) [function] [call site] 00021
4 dns_tolower(unsigned char) [function] [call site] 00022
4 dns_tolower(unsigned char) [function] [call site] 00023
4 burtlemix(unsigned int&, unsigned int&, unsigned int&) [function] [call site] 00024
2 PacketCache::hashAfterQname(std::__1::basic_string_view > const&, unsigned int, unsigned long, std::__1::unordered_set , std::__1::equal_to , std::__1::allocator > const&) [function] [call site] 00025
3 __assert_fail [call site] 00026
3 dnsheader_aligned::dnsheader_aligned(void const*) [function] [call site] 00027
3 dnsheader_aligned::get() const [function] [call site] 00028
3 __bswap_16(unsigned short) [function] [call site] 00029
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00030
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00031
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00032
3 getNextEDNSOption(char const*, unsigned long, unsigned short&, unsigned short&) [function] [call site] 00033
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00034
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00035
3 burtle(unsigned char const*, unsigned int, unsigned int) [function] [call site] 00036
1 DNSName::DNSName(char const*, int, int, bool, unsigned short*, unsigned short*, unsigned int*, unsigned short) [function] [call site] 00037
2 boost::container::basic_string , void>::basic_string() [function] [call site] 00038
3 boost::container::dtl::basic_string_base >::basic_string_base() [function] [call site] 00039
4 boost::container::dtl::basic_string_base >::members_holder::members_holder() [function] [call site] 00040
5 boost::container::new_allocator ::new_allocator() [function] [call site] 00041
5 boost::container::dtl::basic_string_base >::members_holder::init() [function] [call site] 00042
3 boost::container::basic_string , void>::priv_terminate_string() [function] [call site] 00043
4 boost::container::dtl::basic_string_base >::priv_end_addr() const [function] [call site] 00044
5 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00045
5 boost::container::dtl::basic_string_base >::priv_short_addr() const [function] [call site] 00046
6 boost::container::dtl::basic_string_base >::members_holder::pshort_repr() const [function] [call site] 00047
6 boost::intrusive::pointer_traits ::pointer_to(char&) [function] [call site] 00048
7 char* boost::move_detail::addressof (char&) [function] [call site] 00049
8 boost::move_detail::addr_impl_ref ::addr_impl_ref(char&) [function] [call site] 00050
8 boost::move_detail::addressof_impl ::f(char&, long) [function] [call site] 00051
5 boost::container::dtl::basic_string_base >::priv_long_addr() const [function] [call site] 00052
6 boost::container::dtl::basic_string_base >::members_holder::plong_repr() const [function] [call site] 00053
3 __clang_call_terminate [call site] 00054
4 __cxa_begin_catch [call site] 00055
2 __cxa_allocate_exception [call site] 00056
2 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00057
3 std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&) [call site] 00058
2 boost::container::basic_string , void>::reserve(unsigned long) [function] [call site] 00059
3 boost::container::basic_string , void>::priv_reserve(unsigned long, bool) [function] [call site] 00060
4 boost::container::basic_string , void>::max_size() const [function] [call site] 00061
5 boost::container::dtl::basic_string_base >::max_size() const [function] [call site] 00062
6 boost::container::dtl::basic_string_base >::alloc() const [function] [call site] 00063
6 boost::container::allocator_traits >::max_size(boost::container::new_allocator const&) [function] [call site] 00064
7 boost::container::allocator_traits >::priv_max_size(boost::move_detail::integral_constant , boost::container::new_allocator const&) [function] [call site] 00065
8 boost::container::new_allocator ::max_size() const [function] [call site] 00066
4 boost::container::throw_length_error(char const*) [function] [call site] 00067
5 __cxa_allocate_exception [call site] 00068
5 std::length_error::length_error(char const*) [function] [call site] 00069
6 std::logic_error::logic_error(char const*) [call site] 00070
4 boost::container::basic_string , void>::capacity() const [function] [call site] 00071
5 boost::container::dtl::basic_string_base >::priv_capacity() const [function] [call site] 00072
6 boost::container::dtl::basic_string_base >::priv_storage() const [function] [call site] 00073
7 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00074
5 __clang_call_terminate [call site] 00075
4 boost::container::basic_string , void>::size() const [function] [call site] 00076
5 boost::container::dtl::basic_string_base >::priv_size() const [function] [call site] 00077
6 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00078
4 unsigned long const& boost::container::dtl::max_value (unsigned long const&, unsigned long const&) [function] [call site] 00079
4 boost::container::dtl::basic_string_base >::next_capacity(unsigned long) const [function] [call site] 00080
5 boost::container::dtl::basic_string_base >::priv_storage() const [function] [call site] 00081
5 boost::container::allocator_traits >::max_size(boost::container::new_allocator const&) [function] [call site] 00082
5 unsigned long boost::container::dtl::grow_factor_ratio<0u, 2u, 1u>::operator() (unsigned long, unsigned long, unsigned long) const [function] [call site] 00083
6 unsigned long const& boost::container::dtl::min_value (unsigned long const&, unsigned long const&) [function] [call site] 00084
4 boost::container::dtl::basic_string_base >::allocation_command(unsigned int, unsigned long, unsigned long&, char*&) [function] [call site] 00085
5 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00086
5 boost::container::dtl::basic_string_base >::alloc() [function] [call site] 00087
5 boost::container::dtl::allocator_version_traits , 1u>::allocation_command(boost::container::new_allocator &, unsigned int, unsigned long, unsigned long&, char*&) [function] [call site] 00088
6 boost::container::throw_logic_error(char const*) [function] [call site] 00089
7 __cxa_allocate_exception [call site] 00090
6 boost::container::new_allocator ::allocate(unsigned long) [function] [call site] 00091
7 boost::container::throw_bad_alloc() [function] [call site] 00092
8 __cxa_allocate_exception [call site] 00093
6 __cxa_begin_catch [call site] 00094
6 __cxa_rethrow [call site] 00095
6 __cxa_end_catch [call site] 00096
4 boost::container::dtl::basic_string_base >::priv_addr() const [function] [call site] 00097
5 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00098
5 boost::container::dtl::basic_string_base >::priv_short_addr() const [function] [call site] 00099
5 boost::container::dtl::basic_string_base >::priv_long_addr() const [function] [call site] 00100
4 boost::container::dtl::basic_string_base >::priv_size() const [function] [call site] 00101
4 unsigned long boost::container::basic_string , void>::priv_uninitialized_copy (char*, char*, char*) [function] [call site] 00102
5 boost::container::dtl::basic_string_base >::construct(char*, char const&) [function] [call site] 00103
6 boost::container::dtl::basic_string_base >::alloc() [function] [call site] 00104
6 char* boost::movelib::to_raw_pointer (char*) [function] [call site] 00105
6 void boost::container::allocator_traits >::construct (boost::container::new_allocator &, char*, char const&) [function] [call site] 00106
7 char const& boost::forward (boost::move_detail::remove_reference ::type&) [function] [call site] 00107
7 void boost::container::allocator_traits >::priv_construct (boost::move_detail::integral_constant , boost::container::new_allocator &, char*, char const&) [function] [call site] 00108
8 char const& boost::forward (boost::move_detail::remove_reference ::type&) [function] [call site] 00109
5 __cxa_begin_catch [call site] 00110
5 boost::container::dtl::basic_string_base >::destroy(char*) [function] [call site] 00111
6 boost::container::dtl::basic_string_base >::alloc() [function] [call site] 00112
6 char* boost::movelib::to_raw_pointer (char*) [function] [call site] 00113
5 __cxa_end_catch [call site] 00114
5 __cxa_rethrow [call site] 00115
4 boost::container::basic_string , void>::priv_construct_null(char*) [function] [call site] 00116
5 boost::container::dtl::basic_string_base >::construct(char*, char const&) [function] [call site] 00117
4 boost::container::dtl::basic_string_base >::deallocate_block() [function] [call site] 00118
5 boost::container::dtl::basic_string_base >::priv_addr() const [function] [call site] 00119
4 boost::container::dtl::basic_string_base >::assure_long() [function] [call site] 00120
5 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00121
5 boost::container::dtl::basic_string_base >::destroy_short() [function] [call site] 00122
6 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00123
6 __assert_fail [call site] 00124
6 boost::container::dtl::basic_string_base >::members_holder::pshort_repr() [function] [call site] 00125
5 boost::container::dtl::basic_string_base >::construct_long() [function] [call site] 00126
6 boost::container::dtl::basic_string_base >::long_t::long_t() [function] [call site] 00127
5 boost::container::dtl::basic_string_base >::members_holder::plong_repr() [function] [call site] 00128
4 boost::container::dtl::basic_string_base >::priv_long_addr(char*) [function] [call site] 00129
5 boost::container::dtl::basic_string_base >::members_holder::plong_repr() [function] [call site] 00130
4 boost::container::dtl::basic_string_base >::priv_long_size(unsigned long) [function] [call site] 00131
5 boost::container::dtl::basic_string_base >::members_holder::plong_repr() [function] [call site] 00132
4 boost::container::dtl::basic_string_base >::priv_storage(unsigned long) [function] [call site] 00133
5 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00134
5 boost::container::dtl::basic_string_base >::priv_long_storage(unsigned long) [function] [call site] 00135
6 boost::container::dtl::basic_string_base >::members_holder::plong_repr() [function] [call site] 00136
2 DNSName::packetParser(char const*, int, int, bool, unsigned short*, unsigned short*, unsigned int*, int, unsigned short) [function] [call site] 00137
3 __cxa_allocate_exception [call site] 00138
3 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00139
3 __cxa_allocate_exception [call site] 00140
3 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00141
3 __cxa_allocate_exception [call site] 00142
3 std::range_error::range_error(char const*) [function] [call site] 00143
4 std::runtime_error::runtime_error(char const*) [call site] 00144
3 __cxa_allocate_exception [call site] 00145
3 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00146
3 __cxa_allocate_exception [call site] 00147
3 std::range_error::range_error(char const*) [function] [call site] 00148
3 DNSName::packetParser(char const*, int, int, bool, unsigned short*, unsigned short*, unsigned int*, int, unsigned short) [function] [call site] 00149
4 __cxa_allocate_exception [call site] 00150
4 std::range_error::range_error(char const*) [function] [call site] 00151
4 __cxa_allocate_exception [call site] 00152
4 std::range_error::range_error(char const*) [function] [call site] 00153
4 DNSName::appendRawLabel(char const*, unsigned int) [function] [call site] 00154
5 __cxa_allocate_exception [call site] 00155
5 std::range_error::range_error(char const*) [function] [call site] 00156
5 __cxa_allocate_exception [call site] 00157
5 std::range_error::range_error(char const*) [function] [call site] 00158
5 boost::container::basic_string , void>::size() const [function] [call site] 00159
5 __cxa_allocate_exception [call site] 00160
5 std::range_error::range_error(char const*) [function] [call site] 00161
5 boost::container::basic_string , void>::empty() const [function] [call site] 00162
6 boost::container::dtl::basic_string_base >::priv_size() const [function] [call site] 00163
5 boost::container::basic_string , void>::append(unsigned long, char) [function] [call site] 00164
6 boost::container::constant_iterator ::constant_iterator(char const&, long) [function] [call site] 00165
6 boost::container::basic_string , void>& boost::container::basic_string , void>::append >(boost::container::constant_iterator , boost::container::constant_iterator ) [function] [call site] 00166
7 boost::container::basic_string , void>::end() [function] [call site] 00167
8 boost::container::dtl::basic_string_base >::priv_end_addr() const [function] [call site] 00168
8 __clang_call_terminate [call site] 00169
5 boost::container::basic_string , void>::rbegin() [function] [call site] 00170
6 boost::container::dtl::basic_string_base >::priv_end_addr() const [function] [call site] 00171
6 boost::intrusive::reverse_iterator ::reverse_iterator(char*) [function] [call site] 00172
6 __clang_call_terminate [call site] 00173
5 boost::intrusive::reverse_iterator ::operator*() const [function] [call site] 00174
5 boost::container::basic_string , void>::append(char const*, unsigned long) [function] [call site] 00175
6 boost::container::basic_string , void>& boost::container::basic_string , void>::append (char const*, char const*) [function] [call site] 00176
5 boost::container::basic_string , void>::append(unsigned long, char) [function] [call site] 00177
5 __cxa_free_exception [call site] 00178
4 std::range_error::range_error(char const*) [function] [call site] 00179
4 boost::container::basic_string , void>::empty() const [function] [call site] 00180
4 boost::container::basic_string , void>::append(unsigned long, char) [function] [call site] 00181
4 __cxa_allocate_exception [call site] 00182
4 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00183
4 __cxa_allocate_exception [call site] 00184
4 std::range_error::range_error(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00185
2 boost::container::dtl::basic_string_base >::~basic_string_base() [function] [call site] 00186
3 boost::container::dtl::basic_string_base >::is_short() const [function] [call site] 00187
3 boost::container::dtl::basic_string_base >::priv_long_addr() const [function] [call site] 00188
3 __clang_call_terminate [call site] 00189
1 PacketCache::queryMatches(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&, DNSName const&, std::__1::unordered_set , std::__1::equal_to , std::__1::allocator > const&) [function] [call site] 00190
2 PacketCache::queryHeaderMatches(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00191
2 DNSName::wirelength() const [function] [call site] 00192
3 boost::container::basic_string , void>::length() const [function] [call site] 00193
4 boost::container::basic_string , void>::size() const [function] [call site] 00194
2 dnsheader_aligned::dnsheader_aligned(void const*) [function] [call site] 00195
2 dnsheader_aligned::get() const [function] [call site] 00196
2 __bswap_16(unsigned short) [function] [call site] 00197
2 getNextEDNSOption(char const*, unsigned long, unsigned short&, unsigned short&) [function] [call site] 00198
1 DNSName::~DNSName() [function] [call site] 00199
2 boost::container::dtl::basic_string_base >::~basic_string_base() [function] [call site] 00200
1 __cxa_begin_catch [call site] 00201
1 __cxa_end_catch [call site] 00202
1 __cxa_guard_acquire [call site] 00203
1 PacketCache::canHashPacket(std::__1::basic_string , std::__1::allocator > const&, std::__1::unordered_set , std::__1::equal_to , std::__1::allocator > const&) [function] [call site] 00204
1 DNSName::DNSName(char const*, int, int, bool, unsigned short*, unsigned short*, unsigned int*, unsigned short) [function] [call site] 00205
1 PacketCache::queryMatches(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&, DNSName const&, std::__1::unordered_set , std::__1::equal_to , std::__1::allocator > const&) [function] [call site] 00206
1 DNSName::~DNSName() [function] [call site] 00207
1 __cxa_begin_catch [call site] 00208
1 __cxa_begin_catch [call site] 00209
1 __cxa_end_catch [call site] 00210
1 __cxa_begin_catch [call site] 00211