Fuzz introspector: Http
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
2 2 1 :

['exit']

2 2 autoStaticData::StaticData()::{lambda(auto:1*)#1}::operator() >(uWS::HttpRouter *) call site: 00000 /src/uWebSockets/fuzzing/Http.cpp:30
2 2 1 :

['exit']

2 2 autoStaticData::StaticData()::{lambda(auto:1*)#2}::operator() >(uWS::HttpRouter *) call site: 00000 /src/uWebSockets/fuzzing/Http.cpp:42
0 12 14 :

['std::__1::vector >::operator[][abi:ne180100](unsigned long)', 'std::__1::vector ::Node, std::__1::default_delete ::Node> >, std::__1::allocator ::Node, std::__1::default_delete ::Node> > > >::begin[abi:ne180100]()', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2INS_17basic_string_viewIcS2_EETnNS_9enable_ifIXaasr33__can_be_converted_to_string_viewIcS2_T_EE5valuentsr17__is_same_uncvrefISA_S5_EE5valueEiE4typeELi0EEERKSA_', 'std::__1::vector ::Node, std::__1::default_delete ::Node> >, std::__1::allocator ::Node, std::__1::default_delete ::Node> > > >::end[abi:ne180100]()', 'std::__1::basic_string , std::__1::allocator >::operator[][abi:ne180100](unsigned long)', 'std::__1::vector >::size[abi:ne180100]() const', 'std::__1::basic_string , std::__1::allocator >::length[abi:ne180100]() const', 'std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*>::operator++[abi:ne180100]()', 'std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*>::operator*[abi:ne180100]() const', 'bool std::__1::operator==[abi:ne180100] >(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&)', 'bool std::__1::operator!=[abi:ne180100] ::Node, std::__1::default_delete ::Node> >*>(std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*> const&, std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*> const&)', 'std::__1::unique_ptr ::Node, std::__1::default_delete ::Node> >::get[abi:ne180100]() const', 'std::__1::unique_ptr ::Node, std::__1::default_delete ::Node> >::operator->[abi:ne180100]() const', 'uWS::HttpRouter ::getUrlSegment(int)']

0 12 uWS::HttpRouter ::findHandler(std::__1::basic_string ,std::__1::allocator >,std::__1::basic_string ,std::__1::allocator >,unsignedint) call site: 00000 /src/uWebSockets/fuzzing/./../src/HttpRouter.h:225
0 0 None 12 12 uWS::HttpRouter ::remove(std::__1::basic_string ,std::__1::allocator >,std::__1::basic_string ,std::__1::allocator >,unsignedint) call site: 00000 /src/uWebSockets/fuzzing/./../src/HttpRouter.h:364
0 0 None 4 4 uWS::ChunkIterator::operator*() call site: 00000 /src/uWebSockets/fuzzing/./../src/ChunkedEncoding.h:218
0 0 None 0 10 autouWS::HttpRouter ::getNode(uWS::HttpRouter ::Node*,std::__1::basic_string ,std::__1::allocator >,bool)::{lambda(auto:1&,auto:2&)#1}::operator() ::Node,std::__1::default_delete ::Node>>const,std::__1::default_delete ::Node>>(std::__1::unique_ptr ::Node,std::__1::default_delete ::Node>>const&,std::__1::default_delete ::Node>&)const call site: 00000 /src/uWebSockets/fuzzing/./../src/HttpRouter.h:93
0 0 None 0 0 autoStaticData::StaticData()::{lambda(auto:1*)#3}::operator() >(uWS::HttpRouter *) call site: 00000 /src/uWebSockets/fuzzing/Http.cpp:54
0 0 None 0 0 autoStaticData::StaticData()::{lambda(auto:1*)#4}::operator() >(uWS::HttpRouter *) call site: 00000 /src/uWebSockets/fuzzing/Http.cpp:66
0 0 None 0 0 std::__1::pair uWS::HttpParser::fenceAndConsumePostPadded<1>(char*,unsignedint,void*,void*,uWS::HttpRequest*,ofats::any_invocable &,ofats::any_invocable >,bool)>&) call site: 00000 /src/uWebSockets/fuzzing/./../src/HttpParser.h:494

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 uWS::HttpParser::HttpParser() [function] [call site] 00001
1 makePadded(unsigned char const*, unsigned long) [function] [call site] 00002
2 __cxa_guard_acquire [call site] 00003
2 __cxa_guard_release [call site] 00004
2 __cxa_guard_abort [call site] 00005
1 makeChunked(unsigned char const*, unsigned long, std::__1::function<void (unsigned char const*, unsigned long)>) [function] [call site] 00006
1 uWS::HttpParser::~HttpParser() [function] [call site] 00007