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

['(anonymous namespace)::_RealWebSocket::_RealWebSocket(int, bool)', 'setsockopt', 'recv', 'fcntl', 'operator delete(void*)', 'operator new(unsigned long)']

10 10 (anonymousnamespace)::from_url(std::__1::basic_string ,std::__1::allocator >const&,bool,std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/easywsclient/easywsclient.cpp:515
0 0 None 26 26 (anonymousnamespace)::from_url(std::__1::basic_string ,std::__1::allocator >const&,bool,std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/easywsclient/easywsclient.cpp:506
0 0 None 2 2 (anonymousnamespace)::hostname_connect(std::__1::basic_string ,std::__1::allocator >const&,int) call site: 00000 /src/easywsclient/easywsclient.cpp:103
0 0 None 0 0 (anonymousnamespace)::from_url(std::__1::basic_string ,std::__1::allocator >const&,bool,std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/easywsclient/easywsclient.cpp:465

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 easywsclient::WebSocket::from_url(std::__1::basic_string , std::__1::allocator > const&, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00001
2 (anonymous namespace)::from_url(std::__1::basic_string , std::__1::allocator > const&, bool, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00002
3 fprintf [call site] 00003
3 fprintf [call site] 00004
3 __isoc99_sscanf [call site] 00005
3 __isoc99_sscanf [call site] 00006
3 __isoc99_sscanf [call site] 00007
3 __isoc99_sscanf [call site] 00008
3 fprintf [call site] 00009
3 (anonymous namespace)::hostname_connect(std::__1::basic_string , std::__1::allocator > const&, int) [function] [call site] 00010
4 snprintf [call site] 00011
4 getaddrinfo [call site] 00012
4 gai_strerror [call site] 00013
4 socket [call site] 00014
4 connect [call site] 00015
4 close [call site] 00016
4 freeaddrinfo [call site] 00017
3 fprintf [call site] 00018
3 snprintf [call site] 00019
3 snprintf [call site] 00020
3 snprintf [call site] 00021
3 snprintf [call site] 00022
3 snprintf [call site] 00023
3 snprintf [call site] 00024
3 snprintf [call site] 00025
3 snprintf [call site] 00026
3 snprintf [call site] 00027
3 recv [call site] 00028
3 fprintf [call site] 00029
3 __isoc99_sscanf [call site] 00030
3 recv [call site] 00031
3 setsockopt [call site] 00032
3 fcntl [call site] 00033
3 (anonymous namespace)::_RealWebSocket::_RealWebSocket(int, bool) [function] [call site] 00034
4 easywsclient::WebSocket::WebSocket() [function] [call site] 00035