Fuzz introspector: bulletproof_fuzz_tests
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
44 118 11 :

['std::__1::basic_string , std::__1::allocator >::size[abi:ne180100]() const', 'std::__1::unordered_map , std::__1::allocator >, std::__1::hash , std::__1::equal_to , std::__1::allocator , std::__1::allocator > > > >::empty[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_ostream >& std::__1::operator<<[abi:ne180100] >(std::__1::basic_ostream >&, char const*)', 'el::base::utils::File::extractPathFromFilename(std::__1::basic_string , std::__1::allocator > const&, char const*)', 'std::__1::unordered_map > >, std::__1::hash , std::__1::equal_to , std::__1::allocator > > > > >::empty[abi:ne180100]() const', 'el::base::TypedConfigurations::resolveFilename(std::__1::basic_string , std::__1::allocator > const&)', 'el::base::TypedConfigurations::insertFile(el::Level, std::__1::basic_string , std::__1::allocator > const&)::$_0::operator()(el::Level) const', 'std::__1::basic_string , std::__1::allocator >::empty[abi:ne180100]() const', 'el::LevelHelper::convertToString(el::Level)', 'el::base::utils::File::createPath(std::__1::basic_string , std::__1::allocator > const&)']

44 118 el::base::TypedConfigurations::insertFile(el::Level,std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:1886
14 14 13 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::c_str[abi:ne180100]() const', 'std::__1::pair , std::__1::allocator >&>::type, std::__1::__unwrap_ref_decay , std::__1::allocator > >::type> std::__1::make_pair[abi:ne180100] , std::__1::allocator >&, std::__1::basic_string , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator >&, std::__1::basic_string , std::__1::allocator >&&)', 'el::base::utils::CommandLineArgs::hasParamWithValue(char const*) const', 'el::base::utils::CommandLineArgs::hasParam(char const*) const', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', 'std::__1::basic_string , std::__1::allocator >::substr[abi:ne180100](unsigned long, unsigned long) const', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::push_back[abi:ne180100](std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::pair , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > >, void*>*> >, bool> std::__1::unordered_map , std::__1::allocator >, std::__1::basic_string , std::__1::allocator >, std::__1::hash , std::__1::allocator > >, std::__1::equal_to , std::__1::allocator > >, std::__1::allocator , std::__1::allocator > const, std::__1::basic_string , std::__1::allocator > > > >::insert[abi:ne180100] , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > >, void>(std::__1::pair , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > >&&)', 'std::__1::pair , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > >::~pair()', 'strstr', 'std::__1::basic_string , std::__1::allocator >::operator=[abi:ne180100](std::__1::basic_string , std::__1::allocator >&&)', 'std::__1::basic_string , std::__1::allocator >::find_first_of[abi:ne180100](char, unsigned long) const']

14 14 el::base::utils::CommandLineArgs::setArgs(int,char**) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:1426
10 10 5 :

['std::__1::unordered_map , std::__1::equal_to , std::__1::allocator > >::at(el::Level const&)', '__clang_call_terminate', '__cxa_rethrow', '__cxa_end_catch', '__cxa_begin_catch']

10 10 el::base::LogFormat⪙::base::TypedConfigurations::unsafeGetConfigByRef (el::Level,std::__1::unordered_map ,std::__1::equal_to ,std::__1::allocator >>*,charconst*) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.h:2022
0 34 1 :

['el::Configurations::unsafeSet(el::Level, el::ConfigurationType, std::__1::basic_string , std::__1::allocator > const&)']

0 38 el::Configurations::unsafeSetGlobally(el::ConfigurationType,std::__1::basic_string ,std::__1::allocator >const&,bool) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:650
0 3 2 :

['el::base::LogFormat::operator=(el::base::LogFormat const&)', 'std::__1::unordered_map , std::__1::equal_to , std::__1::allocator > >::at(el::Level const&)']

0 3 voidel::base::TypedConfigurations::setValue (el::Level,el::base::LogFormatconst&,std::__1::unordered_map ,std::__1::equal_to ,std::__1::allocator >>*,bool) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.h:2050
0 0 None 4 4 el::base::TypedConfigurations::getULong(std::__1::basic_string ,std::__1::allocator >) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:1838
0 0 None 2 556 el::base::RegisteredLoggers::get(std::__1::basic_string ,std::__1::allocator >const&,bool) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:2000
0 0 None 0 514 el::Logger::configure(el::Configurationsconst&) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.cc:748
0 0 9 :

['std::__1::shared_ptr > >::operator=[abi:ne180100](std::__1::shared_ptr > > const&)', 'std::__1::unordered_map > >, std::__1::hash , std::__1::equal_to , std::__1::allocator > > > > >::at(el::Level const&)', 'std::__1::__hash_map_iterator > > >, void*>*> >::operator->[abi:ne180100]() const', 'std::__1::unordered_map > >, std::__1::hash , std::__1::equal_to , std::__1::allocator > > > > >::find[abi:ne180100](el::Level const&)', 'std::__1::operator!=[abi:ne180100](std::__1::__hash_map_iterator > > >, void*>*> > const&, std::__1::__hash_map_iterator > > >, void*>*> > const&)', 'std::__1::unordered_map > >, std::__1::hash , std::__1::equal_to , std::__1::allocator > > > > >::end[abi:ne180100]()', 'bool std::__1::operator==[abi:ne180100] >, std::__1::basic_fstream > >(std::__1::shared_ptr > > const&, std::__1::shared_ptr > > const&)', 'std::__1::operator==[abi:ne180100](std::__1::__hash_map_iterator > > >, void*>*> > const&, std::__1::__hash_map_iterator > > >, void*>*> > const&)', 'std::__1::pair ::type, std::__1::__unwrap_ref_decay > > const&>::type> std::__1::make_pair[abi:ne180100] > > const&>(el::Level&, std::__1::shared_ptr > > const&)']

0 0 voidel::base::TypedConfigurations::setValue >>>(el::Level,std::__1::shared_ptr >>const&,std::__1::unordered_map >>,std::__1::hash ,std::__1::equal_to ,std::__1::allocator >>>>>*,bool) call site: 00000 /src/monero/monero/external/easylogging++/easylogging++.h:2039

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 epee::span<unsigned char const>::span<unsigned char const, void>(unsigned char const*, unsigned long) [function] [call site] 00001
1 binary_archive<false>::binary_archive(epee::span<unsigned char const>) [function] [call site] 00002
2 binary_archive_base<false>::binary_archive_base() [function] [call site] 00003
2 epee::span<unsigned char const>::begin() const [function] [call site] 00004
1 boost::value_initialized<rct::Bulletproof>::value_initialized() [function] [call site] 00005
2 boost::initialized<rct::Bulletproof>::initialized() [function] [call site] 00006
3 rct::Bulletproof::Bulletproof() [function] [call site] 00007
4 std::initializer_list<rct::key>::initializer_list[abi:ne180100]() [function] [call site] 00008
1 boost::value_initialized<rct::Bulletproof>::operator rct::Bulletproof&() [function] [call site] 00009
2 boost::initialized<rct::Bulletproof>::operator rct::Bulletproof&() [function] [call site] 00010
1 rct::Bulletproof::Bulletproof(rct::Bulletproof const&) [function] [call site] 00011
1 boost::value_initialized<rct::Bulletproof>::~value_initialized() [function] [call site] 00012
2 boost::initialized<rct::Bulletproof>::~initialized() [function] [call site] 00013
3 rct::Bulletproof::~Bulletproof() [function] [call site] 00014
1 bool serialization::serialize<binary_archive<false>, rct::Bulletproof>(binary_archive<false>&, rct::Bulletproof&) [function] [call site] 00015
2 decltype ((({parm#2}.member_do_serialize)({parm#1})),(true)) do_serialize<binary_archive<false>, rct::Bulletproof>(binary_archive<false>&, rct::Bulletproof&) [function] [call site] 00016
3 bool rct::Bulletproof::member_do_serialize<false, binary_archive>(binary_archive<false>&) [function] [call site] 00017
4 binary_archive_base<false>::begin_object() [function] [call site] 00018
4 bool rct::Bulletproof::do_serialize_object<false, binary_archive>(binary_archive<false>&) [function] [call site] 00019
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00020
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00021
6 binary_archive<false>::serialize_blob(void*, unsigned long, char const*) [function] [call site] 00022
7 epee::span<unsigned char const>::remove_prefix(unsigned long) [function] [call site] 00023
8 __clang_call_terminate [call site] 00024
9 __cxa_begin_catch [call site] 00025
7 epee::span<unsigned char const>::data() const [function] [call site] 00026
5 binary_archive<false>::good() const [function] [call site] 00027
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00028
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00029
5 binary_archive<false>::good() const [function] [call site] 00030
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00031
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00032
5 binary_archive<false>::good() const [function] [call site] 00033
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00034
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00035
5 binary_archive<false>::good() const [function] [call site] 00036
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00037
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00038
5 binary_archive<false>::good() const [function] [call site] 00039
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00040
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00041
5 binary_archive<false>::good() const [function] [call site] 00042
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00043
5 _Z12do_serializeI14binary_archiveILb0EENSt3__16vectorIN3rct3keyENS2_9allocatorIS5_EEEEENS2_9enable_ifIXgssr13serialization12is_containerIT0_EE5valueEbE4typeERT_RSA_ [function] [call site] 00044
6 bool do_serialize_container<binary_archive, std::__1::vector<rct::key, std::__1::allocator<rct::key> > >(binary_archive<false>&, std::__1::vector<rct::key, std::__1::allocator<rct::key> >&) [function] [call site] 00045
7 binary_archive<false>::begin_array(unsigned long&) [function] [call site] 00046
8 void binary_archive<false>::serialize_varint<unsigned long>(unsigned long&) [function] [call site] 00047
9 void binary_archive<false>::serialize_uvarint<unsigned long>(unsigned long&) [function] [call site] 00048
10 epee::span<unsigned char const>::cbegin() const [function] [call site] 00049
10 epee::span<unsigned char const>::cend() const [function] [call site] 00050
11 epee::span<unsigned char const>::cbegin() const [function] [call site] 00051
11 epee::span<unsigned char const>::size() const [function] [call site] 00052
10 int tools::read_varint<unsigned char const*&, unsigned long>(unsigned char const*&, unsigned char const*&, unsigned long&) [function] [call site] 00053
11 _ZN5tools11read_varintILi64ERPKhmEENSt3__19enable_ifIXaaaaaasr3std11is_integralIT1_EE5valuesr3std11is_unsignedIS6_EE5valueleLi0ET_leT_sr3std14numeric_limitsIS6_EE6digitsEiE4typeEOT0_SA_RS6_ [function] [call site] 00054
10 epee::span<unsigned char const>::cend() const [function] [call site] 00055
10 epee::span<unsigned char const>::cend() const [function] [call site] 00056
10 epee::span<unsigned char const>::span<unsigned char const, void>(unsigned char const*, unsigned long) [function] [call site] 00057
7 binary_archive<false>::good() const [function] [call site] 00058
7 binary_archive<false>::remaining_bytes() const [function] [call site] 00059
8 binary_archive<false>::good() const [function] [call site] 00060
8 epee::span<unsigned char const>::size() const [function] [call site] 00061
7 binary_archive<false>::set_fail() [function] [call site] 00062
7 decltype (({parm#1}.reserve)({parm#2})) serialization::detail::do_reserve<std::__1::vector<rct::key, std::__1::allocator<rct::key> > >(std::__1::vector<rct::key, std::__1::allocator<rct::key> >&, unsigned long) [function] [call site] 00063
7 std::__1::enable_if<!((use_container_varint<rct::key>)()), bool>::type serialization::detail::serialize_container_element<binary_archive<false>, rct::key>(binary_archive<false>&, rct::key&) [function] [call site] 00064
8 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00065
7 decltype (({parm#1}.emplace_back)({parm#2})) serialization::detail::do_add<std::__1::vector<rct::key, std::__1::allocator<rct::key> > >(std::__1::vector<rct::key, std::__1::allocator<rct::key> >&, std::__1::vector<rct::key, std::__1::allocator<rct::key> >::value_type&&) [function] [call site] 00066
7 binary_archive<false>::good() const [function] [call site] 00067
7 binary_archive<false>::delimit_array() [function] [call site] 00068
7 binary_archive<false>::end_array() [function] [call site] 00069
5 binary_archive<false>::good() const [function] [call site] 00070
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00071
5 _Z12do_serializeI14binary_archiveILb0EENSt3__16vectorIN3rct3keyENS2_9allocatorIS5_EEEEENS2_9enable_ifIXgssr13serialization12is_containerIT0_EE5valueEbE4typeERT_RSA_ [function] [call site] 00072
5 binary_archive<false>::good() const [function] [call site] 00073
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00074
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00075
5 binary_archive<false>::good() const [function] [call site] 00076
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00077
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00078
5 binary_archive<false>::good() const [function] [call site] 00079
5 binary_archive_base<false>::tag(char const*) [function] [call site] 00080
5 _Z12do_serializeI14binary_archiveILb0EEN3rct3keyEENSt3__19enable_ifIXsr12is_blob_typeIT0_E4typeE5valueEbE4typeERT_RS6_ [function] [call site] 00081
5 binary_archive<false>::good() const [function] [call site] 00082
5 binary_archive<false>::good() const [function] [call site] 00083
4 binary_archive_base<false>::end_object() [function] [call site] 00084
2 bool serialization::check_stream_state<binary_archive<false> >(binary_archive<false>&, bool) [function] [call site] 00085
3 bool serialization::detail::do_check_stream_state<binary_archive<false> >(binary_archive<false>&, mpl_::bool_<false>, bool) [function] [call site] 00086
4 binary_archive<false>::good() const [function] [call site] 00087
4 binary_archive<false>::eof() const [function] [call site] 00088
5 epee::span<unsigned char const>::empty() const [function] [call site] 00089
6 epee::span<unsigned char const>::size() const [function] [call site] 00090
1 rct::Bulletproof::~Bulletproof() [function] [call site] 00091
1 __cxa_begin_catch [call site] 00092
1 fprintf [call site] 00093
1 __cxa_end_catch [call site] 00094