Fuzz introspector: 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
8 8 10 :

['std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(char const*, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::__wrap_iter , std::__1::allocator >*>::operator*() const', 'Fatal(char const*, ...)', 'std::__1::basic_string , std::__1::allocator >::c_str() const', 'std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >::end()', 'std::__1::basic_string , std::__1::allocator >::append(std::__1::basic_string , std::__1::allocator > const&)', 'bool std::__1::operator!= , std::__1::allocator >*>(std::__1::__wrap_iter , std::__1::allocator >*> const&, std::__1::__wrap_iter , std::__1::allocator >*> const&)', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator > const&, char const*)', 'std::__1::basic_string , std::__1::allocator >::basic_string()', 'std::__1::__wrap_iter , std::__1::allocator >*>::operator++()']

8 8 EdgeEnv::LookupVariable(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/ninja/src/graph.cc:447
0 141 5 :

['Lexer::DescribeLastError()', 'Lexer::EatWhitespace()', 'StringPiece::StringPiece(char const*, unsigned long)', 'EvalString::AddText(StringPiece)', 'EvalString::AddSpecial(StringPiece)']

0 177 Lexer::ReadEvalString(EvalString*,bool,std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/lexer.cc:794
0 80 3 :

['std::__1::vector >::push_back(EvalString const&)', 'Lexer::ReadPath(EvalString*, std::__1::basic_string , std::__1::allocator >*)', 'EvalString::empty() const']

46 1276 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:292
0 14 3 :

['Lexer::DescribeLastError()', 'Lexer::Error(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator >*)', 'std::__1::basic_string , std::__1::allocator >::~basic_string()']

0 14 Lexer::ReadEvalString(EvalString*,bool,std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/lexer.cc:709
0 12 2 :

['std::__1::basic_string , std::__1::allocator >::basic_string (char const*)', 'Lexer::Error(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator >*)']

0 12 ManifestParser::ParsePool(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:125
0 10 5 :

['_ZNSt3__111__wrap_iterIPKP4NodeEC2IPS2_EERKNS0_IT_EEPNS_9enable_ifIXsr14is_convertibleIS8_S4_EE5valueEvE4typeE', 'Node::path() const', 'std::__1::vector >::erase(std::__1::__wrap_iter , std::__1::__wrap_iter )', 'std::__1::basic_string , std::__1::allocator >::c_str() const', 'Warning(char const*, ...)']

0 186 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:395
0 8 1 :

['BindingEnv::LookupRule(std::__1::basic_string , std::__1::allocator > const&)']

0 8 BindingEnv::LookupRule(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/ninja/src/eval_env.cc:50
0 0 None 74 2272 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:214
0 0 None 70 2093 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:230
0 0 None 64 1857 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:242
0 0 None 64 1833 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:246
0 0 None 58 1634 ManifestParser::ParseEdge(std::__1::basic_string ,std::__1::allocator >*) call site: 00000 /src/ninja/src/manifest_parser.cc:268

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 sprintf [call site] 00001
1 fopen [call site] 00002
1 fwrite [call site] 00003
1 fclose [call site] 00004
1 RealDiskInterface::RealDiskInterface() [function] [call site] 00005
2 DiskInterface::DiskInterface() [function] [call site] 00006
3 FileReader::FileReader() [function] [call site] 00007
1 State::State() [function] [call site] 00008
2 BindingEnv::BindingEnv() [function] [call site] 00009
3 Env::Env() [function] [call site] 00010
2 BindingEnv::AddRule(Rule const*) [function] [call site] 00011
3 Rule::name() const [function] [call site] 00012
3 BindingEnv::LookupRuleCurrentScope(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00013
3 __assert_fail [call site] 00014
3 Rule::name() const [function] [call site] 00015
2 State::AddPool(Pool*) [function] [call site] 00016
3 Pool::name() const [function] [call site] 00017
3 State::LookupPool(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00018
3 __assert_fail [call site] 00019
3 Pool::name() const [function] [call site] 00020
2 State::AddPool(Pool*) [function] [call site] 00021
2 BindingEnv::~BindingEnv() [function] [call site] 00022
3 Env::~Env() [function] [call site] 00023
1 ManifestParserOptions::ManifestParserOptions() [function] [call site] 00024
1 ManifestParser::ManifestParser(State*, FileReader*, ManifestParserOptions) [function] [call site] 00025
2 Parser::Parser(State*, FileReader*) [function] [call site] 00026
3 Lexer::Lexer() [function] [call site] 00027
4 StringPiece::StringPiece() [function] [call site] 00028
1 Parser::Load(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator >*, Lexer*) [function] [call site] 00029
2 __cxa_guard_acquire [call site] 00030
2 Metrics::NewMetric(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00031
3 Metric::Metric() [function] [call site] 00032
2 Lexer::Error(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator >*) [function] [call site] 00033
3 StringPiece::AsString() const [function] [call site] 00034
3 snprintf [call site] 00035
2 ScopedMetric::~ScopedMetric() [function] [call site] 00036
3 (anonymous namespace)::HighResTimer() [function] [call site] 00037
3 __clang_call_terminate [call site] 00038
4 __cxa_begin_catch [call site] 00039
1 State::~State() [function] [call site] 00040
2 BindingEnv::~BindingEnv() [function] [call site] 00041
1 RealDiskInterface::~RealDiskInterface() [function] [call site] 00042
2 DiskInterface::~DiskInterface() [function] [call site] 00043