Fuzz introspector: FuzzServer
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
25 25 2 :

['__errno_location', 'modbus_strerror']

25 28 server call site: 00022 /src/libmodbus/fuzz/FuzzServer.c:109
2 5 2 :

['modbus_free', '__errno_location']

2 5 modbus_new_tcp call site: 00018 /src/libmodbus/src/modbus-tcp.c:904
2 2 1 :

['htonl']

10 10 modbus_tcp_listen call site: 00034 /src/libmodbus/src/modbus-tcp.c:549
2 2 1 :

['connect']

8 8 client call site: 00006 /src/libmodbus/fuzz/FuzzServer.c:59
2 2 1 :

['__errno_location']

2 2 modbus_tcp_listen call site: 00029 /src/libmodbus/src/modbus-tcp.c:514
2 2 1 :

['close']

2 2 modbus_tcp_listen call site: 00041 /src/libmodbus/src/modbus-tcp.c:569
2 2 1 :

['__errno_location']

2 2 modbus_tcp_accept call site: 00043 /src/libmodbus/src/modbus-tcp.c:698
2 2 1 :

['inet_ntop']

2 2 modbus_tcp_accept call site: 00045 /src/libmodbus/src/modbus-tcp.c:715
2 2 1 :

['__errno_location']

2 2 _modbus_tcp_select call site: 00000 /src/libmodbus/src/modbus-tcp.c:778
2 2 1 :

['__errno_location']

2 2 modbus_receive call site: 00049 /src/libmodbus/src/modbus.c:527
0 0 None 142 158 _modbus_receive_msg call site: 00000 /src/libmodbus/src/modbus.c:363
0 0 None 142 158 _modbus_receive_msg call site: 00000 /src/libmodbus/src/modbus.c:371

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 pthread_create [call site] 00001
1 client [function] [call site] 00002
2 socket [call site] 00003
2 htons [call site] 00004
2 inet_addr [call site] 00005
2 connect [call site] 00006
2 send [call site] 00007
2 close [call site] 00008
2 pthread_exit [call site] 00009
1 server [function] [call site] 00010
2 modbus_new_tcp [function] [call site] 00011
3 _modbus_init_common [function] [call site] 00012
3 modbus_free [function] [call site] 00013
3 __errno_location [call site] 00014
3 fprintf [call site] 00016
3 modbus_free [function] [call site] 00017
3 __errno_location [call site] 00018
3 fprintf [call site] 00019
3 modbus_free [function] [call site] 00020
3 __errno_location [call site] 00021
2 modbus_mapping_new_start_address [function] [call site] 00022
2 __errno_location [call site] 00023
2 modbus_strerror [function] [call site] 00024
3 strerror [call site] 00025
2 fprintf [call site] 00026
2 modbus_free [function] [call site] 00027
2 modbus_set_bits_from_bytes [function] [call site] 00028
2 modbus_tcp_listen [function] [call site] 00029
3 __errno_location [call site] 00030
3 socket [call site] 00031
3 setsockopt [call site] 00032
3 close [call site] 00033
3 htons [call site] 00034
3 htonl [call site] 00035
3 inet_pton [call site] 00036
3 fprintf [call site] 00037
3 close [call site] 00038
3 bind [call site] 00039
3 close [call site] 00040
3 listen [call site] 00041
3 close [call site] 00042
2 modbus_tcp_accept [function] [call site] 00043
3 __errno_location [call site] 00044
3 accept4 [call site] 00045
3 inet_ntop [call site] 00046
3 fprintf [call site] 00047
3 printf [call site] 00048
2 modbus_receive [function] [call site] 00049
3 __errno_location [call site] 00050
2 close [call site] 00051
2 modbus_mapping_free [function] [call site] 00052
2 modbus_close [function] [call site] 00053
2 modbus_free [function] [call site] 00054
1 pthread_join [call site] 00055