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
24 24 5 :

['std::__1::__wrap_iter *)>*>::operator+(long) const', '_ZNSt3__111__wrap_iterIPKN5ofats13any_invocableIFbPN3uWS10HttpRouterIN10StaticData10RouterDataEEEEEEEC2IPSA_EERKNS0_IT_EEPNS_9enable_ifIXsr14is_convertibleISG_SC_EE5valueEvE4typeE', 'std::__1::vector *)>, std::__1::allocator *)> > >::begin()', 'uWS::HttpRouter ::cullNode(uWS::HttpRouter ::Node*, uWS::HttpRouter ::Node*, unsigned int)', 'std::__1::vector *)>, std::__1::allocator *)> > >::erase(std::__1::__wrap_iter *)> const*>)']

24 24 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:362
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 12 :

['std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*>::operator*() const', 'std::__1::unique_ptr ::Node, std::__1::default_delete ::Node> >::operator->() const', 'std::__1::__wrap_iter ::Node, std::__1::default_delete ::Node> >*>::operator++()', 'std::__1::vector >::size() const', 'std::__1::vector ::Node, std::__1::default_delete ::Node> >, std::__1::allocator ::Node, std::__1::default_delete ::Node> > > >::begin()', 'std::__1::vector ::Node, std::__1::default_delete ::Node> >, std::__1::allocator ::Node, std::__1::default_delete ::Node> > > >::end()', 'uWS::HttpRouter ::getUrlSegment(int)', 'std::__1::vector >::operator[](unsigned long)', 'bool std::__1::operator!= ::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&)', 'bool std::__1::operator== >(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&)', 'std::__1::unique_ptr ::Node, std::__1::default_delete ::Node> >::get() const', 'std::__1::basic_string , std::__1::allocator >::basic_string >, void>(std::__1::basic_string_view > const&)']

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 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 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:465
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

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
1 uWS::HttpParser::~HttpParser() [function] [call site] 00004