Fuzz introspector: levels_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
996 996 6 :

['spdlog::details::fmt_helper::pad2(int, fmt::v9::basic_memory_buffer >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING::operator fmt::v9::basic_string_view () const', 'fmt::v9::format_arg_store , std::__1::remove_cv ::type>::type> fmt::v9::make_format_args , int&>(int&)', 'void fmt::v9::detail::check_format_string >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING, 0>(spdlog::details::fmt_helper::pad2(int, fmt::v9::basic_memory_buffer >&)::{lambda()#1}::operator()() const::FMT_COMPILE_STRING)', 'spdlog::details::fmt_helper::pad2(int, fmt::v9::basic_memory_buffer >&)::{lambda()#1}::operator()() const', 'std::__1::back_insert_iterator > > std::__1::back_inserter > >(fmt::v9::basic_memory_buffer >&)', 'std::__1::back_insert_iterator > > fmt::v9::vformat_to > >, 0>(std::__1::back_insert_iterator > >, fmt::v9::basic_string_view , fmt::v9::basic_format_args >)']

996 996 spdlog::details::fmt_helper::pad2(int,fmt::v9::basic_memory_buffer >&) call site: 00000 /src/spdlog/include/spdlog/details/fmt_helper.h:98
21 21 1 :

['void spdlog::details::fmt_helper::append_int (unsigned int, fmt::v9::basic_memory_buffer >&)']

21 21 voidspdlog::details::fmt_helper::pad3 (unsignedint,fmt::v9::basic_memory_buffer >&) call site: 00000 /src/spdlog/include/spdlog/details/fmt_helper.h:124
13 13 4 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::throw_spdlog_ex(std::__1::basic_string , std::__1::allocator >)']

13 13 spdlog::details::registry::throw_if_exists_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:301
4 10 7 :

['std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator >::size() const', 'std::__1::basic_string , std::__1::allocator >::substr(unsigned long, unsigned long) const', 'spdlog::details::os::path_exists(std::__1::basic_string , std::__1::allocator > const&)', 'spdlog::details::os::mkdir_(std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::basic_string , std::__1::allocator >::find_first_of(char const*, unsigned long) const', 'std::__1::basic_string , std::__1::allocator >::empty() const']

4 10 spdlog::details::os::create_dir(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/details/os-inl.h:557
4 4 1 :

['spdlog::details::os::gmtime(long const&)']

4 4 spdlog::pattern_formatter::get_time_(spdlog::details::log_msgconst&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1097
2 2 3 :

['std::__1::function , std::__1::allocator > const&)>::function(std::__1::function , std::__1::allocator > const&)> const&)', 'spdlog::logger::set_error_handler(std::__1::function , std::__1::allocator > const&)>)', 'std::__1::function , std::__1::allocator > const&)>::~function()']

11 46 spdlog::details::registry::initialize_logger(std::__1::shared_ptr ) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:65
2 2 6 :

['std::__1::__hash_map_iterator > >, void*>*> >::operator->() const', 'std::__1::unique_ptr >::~unique_ptr()', 'std::__1::unique_ptr >::unique_ptr , void, void>(std::__1::unique_ptr >&&)', 'spdlog::custom_flag_formatter::set_padding_info(spdlog::details::padding_info const&)', 'std::__1::unique_ptr >::operator->() const', 'std::__1::remove_reference >&>::type&& std::__1::move >&>(std::__1::unique_ptr >&)']

2 2 voidspdlog::pattern_formatter::handle_flag_ (char,spdlog::details::padding_info) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1109
0 0 None 320 644 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1397
0 0 None 320 644 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1399
0 0 None 320 644 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1408
0 0 None 260 287 spdlog::details::file_helper::open(std::__1::basic_string ,std::__1::allocator >const&,bool) call site: 00000 /src/spdlog/include/spdlog/details/file_helper-inl.h:48
0 0 None 260 287 spdlog::details::file_helper::open(std::__1::basic_string ,std::__1::allocator >const&,bool) call site: 00000 /src/spdlog/include/spdlog/details/file_helper-inl.h:61

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __cxa_guard_acquire [call site] 00001
1 spdlog::file_event_handlers::file_event_handlers() [function] [call site] 00002
1 std::__1::shared_ptr spdlog::basic_logger_mt (std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&, bool, spdlog::file_event_handlers const&) [function] [call site] 00003
2 std::__1::shared_ptr spdlog::synchronous_factory::create , std::__1::basic_string , std::__1::allocator > const&, bool&, spdlog::file_event_handlers const&>(std::__1::basic_string , std::__1::allocator >, std::__1::basic_string , std::__1::allocator > const&, bool&, spdlog::file_event_handlers const&) [function] [call site] 00004
3 spdlog::details::registry::instance() [function] [call site] 00005
4 __cxa_guard_acquire [call site] 00006
4 spdlog::details::registry::registry() [function] [call site] 00007
5 spdlog::pattern_formatter::pattern_formatter(spdlog::pattern_time_type, std::__1::basic_string , std::__1::allocator >) [function] [call site] 00008
6 spdlog::formatter::formatter() [function] [call site] 00009
6 spdlog::details::padding_info::padding_info() [function] [call site] 00010
6 std::__1::unique_ptr > spdlog::details::make_unique (spdlog::details::padding_info&&) [function] [call site] 00011
7 spdlog::details::full_formatter::full_formatter(spdlog::details::padding_info) [function] [call site] 00012
8 spdlog::details::flag_formatter::flag_formatter(spdlog::details::padding_info) [function] [call site] 00013
8 fmt::v9::basic_memory_buffer >::basic_memory_buffer(std::__1::allocator const&) [function] [call site] 00014
9 fmt::v9::detail::buffer ::buffer(char*, unsigned long, unsigned long) [function] [call site] 00015
9 fmt::v9::detail::buffer ::set(char*, unsigned long) [function] [call site] 00016
6 spdlog::formatter::~formatter() [function] [call site] 00017
1 spdlog::set_default_logger(std::__1::shared_ptr ) [function] [call site] 00018
2 spdlog::details::registry::instance() [function] [call site] 00019
1 spdlog::cfg::load_env_levels() [function] [call site] 00020
2 spdlog::details::os::getenv(char const*) [function] [call site] 00021
3 getenv [call site] 00022
2 spdlog::cfg::helpers::load_levels(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00023
3 spdlog::cfg::helpers::extract_key_vals_(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00024
4 spdlog::cfg::helpers::extract_kv_(char, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00025
5 spdlog::cfg::helpers::trim_(std::__1::basic_string , std::__1::allocator >&) [function] [call site] 00026
3 spdlog::details::registry::instance() [function] [call site] 00027
3 spdlog::cfg::helpers::to_lower_(std::__1::basic_string , std::__1::allocator >&) [function] [call site] 00028
3 spdlog::level::from_str(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00029
4 __clang_call_terminate [call site] 00030
5 __cxa_begin_catch [call site] 00031
1 spdlog::cfg::load_argv_levels(int, char const**) [function] [call site] 00032
1 void spdlog::info , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00033
2 spdlog::default_logger_raw() [function] [call site] 00034
3 spdlog::details::registry::instance() [function] [call site] 00035
2 void spdlog::logger::info , std::__1::allocator > >(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00036
3 void spdlog::logger::log , std::__1::allocator > >(spdlog::level::level_enum, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00037
4 spdlog::source_loc::source_loc() [function] [call site] 00038
4 fmt::v9::basic_string_view ::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00039
4 spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v9::basic_string_view ) [function] [call site] 00040
5 spdlog::logger::should_log(spdlog::level::level_enum) const [function] [call site] 00041
5 spdlog::details::backtracer::enabled() const [function] [call site] 00042
5 fmt::v9::basic_string_view ::basic_string_view , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00043
5 spdlog::details::log_msg::log_msg(spdlog::source_loc, fmt::v9::basic_string_view , spdlog::level::level_enum, fmt::v9::basic_string_view ) [function] [call site] 00044
6 spdlog::details::os::now() [function] [call site] 00045
6 spdlog::details::log_msg::log_msg(std::__1::chrono::time_point > >, spdlog::source_loc, fmt::v9::basic_string_view , spdlog::level::level_enum, fmt::v9::basic_string_view ) [function] [call site] 00046
7 spdlog::details::os::thread_id() [function] [call site] 00047
8 spdlog::details::os::_thread_id() [function] [call site] 00048
9 syscall [call site] 00049
5 spdlog::logger::log_it_(spdlog::details::log_msg const&, bool, bool) [function] [call site] 00050
6 spdlog::details::backtracer::push_back(spdlog::details::log_msg const&) [function] [call site] 00051
7 spdlog::details::log_msg_buffer::log_msg_buffer(spdlog::details::log_msg const&) [function] [call site] 00052
8 fmt::v9::basic_memory_buffer >::basic_memory_buffer(std::__1::allocator const&) [function] [call site] 00053
8 fmt::v9::basic_string_view ::begin() const [function] [call site] 00054
8 void fmt::v9::detail::buffer ::append (char const*, char const*) [function] [call site] 00055
9 std::__1::make_unsigned ::type fmt::v9::detail::to_unsigned (long) [function] [call site] 00056
10 fmt::v9::detail::assert_fail(char const*, int, char const*) [function] [call site] 00057
11 fprintf [call site] 00058
9 fmt::v9::detail::buffer ::try_reserve(unsigned long) [function] [call site] 00059
9 char* fmt::v9::detail::make_checked (char*, unsigned long) [function] [call site] 00060
8 fmt::v9::basic_string_view ::begin() const [function] [call site] 00061
8 void fmt::v9::detail::buffer ::append (char const*, char const*) [function] [call site] 00062
8 spdlog::details::log_msg_buffer::update_string_views() [function] [call site] 00063
9 fmt::v9::detail::buffer ::data() [function] [call site] 00064
9 fmt::v9::detail::buffer ::data() [function] [call site] 00065
8 fmt::v9::basic_memory_buffer >::~basic_memory_buffer() [function] [call site] 00066
9 fmt::v9::basic_memory_buffer >::deallocate() [function] [call site] 00067
10 fmt::v9::detail::buffer ::data() [function] [call site] 00068
10 fmt::v9::detail::buffer ::capacity() const [function] [call site] 00069
7 spdlog::details::circular_q ::push_back(spdlog::details::log_msg_buffer&&) [function] [call site] 00070
8 spdlog::details::log_msg_buffer::operator=(spdlog::details::log_msg_buffer&&) [function] [call site] 00071
9 fmt::v9::basic_memory_buffer >::operator=(fmt::v9::basic_memory_buffer >&&) [function] [call site] 00072
10 fmt::v9::detail::assert_fail(char const*, int, char const*) [function] [call site] 00073
10 fmt::v9::basic_memory_buffer >::deallocate() [function] [call site] 00074
10 fmt::v9::basic_memory_buffer >::move(fmt::v9::basic_memory_buffer >&) [function] [call site] 00075
11 fmt::v9::detail::buffer ::data() [function] [call site] 00076
11 fmt::v9::detail::buffer ::size() const [function] [call site] 00077
11 fmt::v9::detail::buffer ::set(char*, unsigned long) [function] [call site] 00078
11 char* fmt::v9::detail::make_checked (char*, unsigned long) [function] [call site] 00079
11 char* fmt::v9::detail::copy_str (char*, char*, char*) [function] [call site] 00080
11 fmt::v9::detail::buffer ::set(char*, unsigned long) [function] [call site] 00081
11 fmt::v9::detail::buffer ::set(char*, unsigned long) [function] [call site] 00082
11 fmt::v9::detail::buffer ::clear() [function] [call site] 00083
11 fmt::v9::basic_memory_buffer >::resize(unsigned long) [function] [call site] 00084
12 fmt::v9::detail::buffer ::try_resize(unsigned long) [function] [call site] 00085
13 fmt::v9::detail::buffer ::try_reserve(unsigned long) [function] [call site] 00086
10 __clang_call_terminate [call site] 00087
9 spdlog::details::log_msg_buffer::update_string_views() [function] [call site] 00088
7 spdlog::details::log_msg_buffer::~log_msg_buffer() [function] [call site] 00089
8 fmt::v9::basic_memory_buffer >::~basic_memory_buffer() [function] [call site] 00090