Fuzz introspector: crypto_diff_fuzz_chacha20
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
6 6 4 :

['std::__1::basic_ostream >& std::__1::operator<<[abi:de180100] >(std::__1::basic_ostream >&, char const*)', '__clang_call_terminate', 'abort', 'std::__1::basic_ostream >::operator<<[abi:de180100](std::__1::basic_ostream >& (*)(std::__1::basic_ostream >&))']

6 6 CheckGlobalsImpl::~CheckGlobalsImpl() call site: 00000 ./test/fuzz/util/check_globals.cpp:41
0 0 None 6 6 CheckGlobalsImpl::~CheckGlobalsImpl() call site: 00000 ./test/fuzz/util/check_globals.cpp:25
0 0 1 :

['unsigned long const& std::__1::min[abi:de180100] (unsigned long const&, unsigned long const&)']

4 140 ChaCha20::Crypt(Span ,Span ) call site: 00000 ./crypto/chacha20.cpp:308
0 0 2 :

['std::__1::array ::end[abi:de180100]()', 'unsigned long const& std::__1::min[abi:de180100] (unsigned long const&, unsigned long const&)']

4 112 ChaCha20::Keystream(Span ) call site: 00000 ./crypto/chacha20.cpp:285
0 0 None 0 0 ECRYPT_keysetup(ECRYPT_ctx*,unsignedcharconst*,unsignedint,unsignedint) call site: 00000 ./test/fuzz/crypto_diff_fuzz_chacha20.cpp:103

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 test_one_input(std::__1::span<unsigned char const, 18446744073709551615ul>) [function] [call site] 00001
2 CheckGlobals::CheckGlobals() [function] [call site] 00002
2 std::__1::function<void (std::__1::span<unsigned char const, 18446744073709551615ul>)> const*& inline_assertion_check<true, std::__1::function<void (std::__1::span<unsigned char const, 18446744073709551615ul>)> const*&>(std::__1::function<void (std::__1::span<unsigned char const, 18446744073709551615ul>)> const*&, char const*, int, char const*, char const*) [function] [call site] 00003
3 assertion_fail(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00004
4 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > tinyformat::format<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(tinyformat::FormatStringCheck<4>, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00005
5 void tinyformat::format<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, tinyformat::FormatStringCheck<4>, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00006
6 tinyformat::FormatStringCheck<4u>::operator char const*() [function] [call site] 00007
6 tinyformat::detail::FormatListN<4> tinyformat::makeFormatList<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00008
7 tinyformat::detail::FormatListN<4>::FormatListN<std::__1::basic_string_view<char, std::__1::char_traits<char> >, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, int const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00009
8 tinyformat::FormatList::FormatList(tinyformat::detail::FormatArg*, int) [function] [call site] 00010
8 tinyformat::detail::FormatArg::FormatArg<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00011
8 tinyformat::detail::FormatArg::FormatArg<int>(int const&) [function] [call site] 00012
6 tinyformat::vformat(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, tinyformat::FormatList const&) [function] [call site] 00013
7 tinyformat::detail::formatImpl(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, tinyformat::detail::FormatArg const*, int) [function] [call site] 00014
8 tinyformat::detail::printFormatStringLiteral(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*) [function] [call site] 00015
8 __cxa_allocate_exception [call site] 00016
8 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00017
9 std::runtime_error::runtime_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [call site] 00018
8 __cxa_throw [call site] 00019
8 __cxa_free_exception [call site] 00020
8 tinyformat::detail::streamStateFromFormat(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool&, bool&, int&, char const*, tinyformat::detail::FormatArg const*, int&, int) [function] [call site] 00021
9 __assert_fail [call site] 00022
9 tinyformat::detail::parseIntAndAdvance(char const*&) [function] [call site] 00023
9 __cxa_allocate_exception [call site] 00024
9 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00025
9 __cxa_throw [call site] 00026
9 __cxa_free_exception [call site] 00027
9 __cxa_allocate_exception [call site] 00028
9 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00029
9 __cxa_throw [call site] 00030
9 __cxa_free_exception [call site] 00031
9 __cxa_allocate_exception [call site] 00032
9 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00033
9 __cxa_throw [call site] 00034
9 __cxa_free_exception [call site] 00035
9 tinyformat::detail::parseWidthOrPrecision(int&, char const*&, bool, tinyformat::detail::FormatArg const*, int&, int) [function] [call site] 00036
10 tinyformat::detail::parseIntAndAdvance(char const*&) [function] [call site] 00037
10 tinyformat::detail::parseIntAndAdvance(char const*&) [function] [call site] 00038
10 __cxa_allocate_exception [call site] 00039
10 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00040
10 __cxa_throw [call site] 00041
10 __cxa_free_exception [call site] 00042
10 tinyformat::detail::FormatArg::toInt() const [function] [call site] 00043
11 __assert_fail [call site] 00044
11 __assert_fail [call site] 00045
10 __cxa_allocate_exception [call site] 00046
10 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00047
10 __cxa_throw [call site] 00048
10 __cxa_free_exception [call site] 00049
10 tinyformat::detail::FormatArg::toInt() const [function] [call site] 00050
10 __cxa_allocate_exception [call site] 00051
10 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00052
10 __cxa_throw [call site] 00053
10 __cxa_free_exception [call site] 00054
9 tinyformat::detail::parseWidthOrPrecision(int&, char const*&, bool, tinyformat::detail::FormatArg const*, int&, int) [function] [call site] 00055
9 __cxa_allocate_exception [call site] 00056
9 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00057
9 __cxa_throw [call site] 00058
9 __cxa_free_exception [call site] 00059
9 __cxa_allocate_exception [call site] 00060
9 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00061
9 __cxa_throw [call site] 00062
9 __cxa_free_exception [call site] 00063
8 __cxa_allocate_exception [call site] 00064
8 tinyformat::format_error::format_error(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00065
8 __cxa_throw [call site] 00066
8 __cxa_free_exception [call site] 00067
8 tinyformat::detail::FormatArg::format(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, char const*, int) const [function] [call site] 00068
9 __assert_fail [call site] 00069
9 __assert_fail [call site] 00070
8 tinyformat::detail::FormatArg::format(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, char const*, int) const [function] [call site] 00071
8 std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str[abi:de180100]() const & [function] [call site] 00072
9 std::__1::basic_stringbuf<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str[abi:de180100]() const & [function] [call site] 00073
5 std::__1::basic_ostringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::str[abi:de180100]() const & [function] [call site] 00074
4 fwrite [call site] 00075
4 abort [call site] 00076
2 CheckGlobals::~CheckGlobals() [function] [call site] 00077