Fuzz introspector: pattern_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
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
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
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 6 3 :

['std::__1::unique_ptr >::unique_ptr , std::__1::default_delete >, void, void>(std::__1::unique_ptr , std::__1::default_delete > >&&)', 'std::__1::unique_ptr , std::__1::default_delete > >::~unique_ptr()', 'std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&)']

0 8 voidspdlog::pattern_formatter::handle_flag_ (char,spdlog::details::padding_info) call site: 00000 /src/spdlog/include/spdlog/pattern_formatter-inl.h:1314
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
0 0 1 :

['std::__1::function , std::__1::allocator > const&, _IO_FILE*)>::operator()(std::__1::basic_string , std::__1::allocator > const&, _IO_FILE*) const']

2 2 spdlog::details::file_helper::close() call site: 00000 /src/spdlog/include/spdlog/details/file_helper-inl.h:105
0 0 None 0 29 spdlog::details::registry::initialize_logger(std::__1::shared_ptr ) call site: 00000 /src/spdlog/include/spdlog/details/registry-inl.h:77
0 0 6 :

['bool std::__1::operator!= *>(std::__1::__wrap_iter *> const&, std::__1::__wrap_iter *> const&)', 'std::__1::unique_ptr >::operator->() const', 'std::__1::__wrap_iter *>::operator++()', 'std::__1::vector , std::__1::allocator > >::end()', '_ZNSt3__14nextINS_11__wrap_iterIPNS_10shared_ptrIN6spdlog5sinks4sinkEEEEEEENS_9enable_ifIXsr25__is_cpp17_input_iteratorIT_EE5valueESA_E4typeESA_NS_15iterator_traitsISA_E15difference_typeE', 'bool std::__1::operator== *>(std::__1::__wrap_iter *> const&, std::__1::__wrap_iter *> const&)']

0 0 spdlog::logger::set_formatter(std::__1::unique_ptr >) call site: 00000 /src/spdlog/include/spdlog/logger-inl.h:88

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::set_pattern(std::__1::basic_string , std::__1::allocator >, spdlog::pattern_time_type) [function] [call site] 00020
2 spdlog::pattern_formatter::pattern_formatter(std::__1::basic_string , std::__1::allocator >, spdlog::pattern_time_type, std::__1::basic_string , std::__1::allocator >, std::__1::unordered_map >, std::__1::hash , std::__1::equal_to , std::__1::allocator > > > >) [function] [call site] 00021
3 spdlog::formatter::formatter() [function] [call site] 00022
3 spdlog::pattern_formatter::compile_pattern_(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00023
4 spdlog::pattern_formatter::handle_padspec_(std::__1::__wrap_iter &, std::__1::__wrap_iter ) [function] [call site] 00024
5 spdlog::details::padding_info::padding_info() [function] [call site] 00025
5 spdlog::details::padding_info::padding_info() [function] [call site] 00026
5 spdlog::details::padding_info::padding_info(unsigned long, spdlog::details::padding_info::pad_side, bool) [function] [call site] 00027
4 spdlog::details::padding_info::enabled() const [function] [call site] 00028
4 void spdlog::pattern_formatter::handle_flag_ (char, spdlog::details::padding_info) [function] [call site] 00029
5 spdlog::custom_flag_formatter::set_padding_info(spdlog::details::padding_info const&) [function] [call site] 00030
5 std::__1::unique_ptr > spdlog::details::make_unique (spdlog::details::padding_info&) [function] [call site] 00031
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00032
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00033
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00034
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00035
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00036
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00037
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00038
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00039
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00040
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00041
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00042
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00043
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00044
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00045
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00046
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00047
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00048
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00049
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00050
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00051
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00052
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00053
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00054
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00055
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00056
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00057
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00058
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00059
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00060
5 std::__1::unique_ptr > spdlog::details::make_unique (spdlog::details::padding_info&) [function] [call site] 00061
5 std::__1::unique_ptr > spdlog::details::make_unique (spdlog::details::padding_info&) [function] [call site] 00062
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00063
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00064
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00065
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00066
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00067
5 std::__1::unique_ptr > spdlog::details::make_unique (char&&) [function] [call site] 00068
5 std::__1::unique_ptr > >, std::__1::default_delete > > > > spdlog::details::make_unique > >, spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00069
5 std::__1::unique_ptr > >, std::__1::default_delete > > > > spdlog::details::make_unique > >, spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00070
5 std::__1::unique_ptr > >, std::__1::default_delete > > > > spdlog::details::make_unique > >, spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00071
5 std::__1::unique_ptr > >, std::__1::default_delete > > > > spdlog::details::make_unique > >, spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00072
5 std::__1::unique_ptr > spdlog::details::make_unique () [function] [call site] 00073
5 spdlog::details::aggregate_formatter::add_ch(char) [function] [call site] 00074
5 spdlog::details::aggregate_formatter::add_ch(char) [function] [call site] 00075
5 std::__1::unique_ptr , std::__1::default_delete > > spdlog::details::make_unique , spdlog::details::padding_info&>(spdlog::details::padding_info&) [function] [call site] 00076
5 spdlog::details::aggregate_formatter::add_ch(char) [function] [call site] 00077
4 void spdlog::pattern_formatter::handle_flag_ (char, spdlog::details::padding_info) [function] [call site] 00078
4 std::__1::unique_ptr > spdlog::details::make_unique () [function] [call site] 00079
4 spdlog::details::aggregate_formatter::add_ch(char) [function] [call site] 00080
3 spdlog::formatter::~formatter() [function] [call site] 00081
2 spdlog::set_formatter(std::__1::unique_ptr >) [function] [call site] 00082
3 spdlog::details::registry::instance() [function] [call site] 00083