Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzzer details

Fuzzer: FuzzClient

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 121 99.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 1 0.81%
lawngreen 50+ 0 0.0%
All colors 122 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
121 0 EP call site: 00000 client

Runtime coverage analysis

Covered functions
1
Functions that are reachable but not covered
43
Reachable functions
44
Percentage of reachable functions covered
2.27%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/FuzzClient.c 5
src/modbus-tcp.c 1
src/modbus.c 19

Fuzzer: FuzzServer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 25 44.6%
gold [1:9] 30 53.5%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 1.78%
All colors 56 100

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 :

['__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
0 0 None 142 158 _modbus_receive_msg call site: 00000 /src/libmodbus/src/modbus.c:388

Runtime coverage analysis

Covered functions
24
Functions that are reachable but not covered
21
Reachable functions
35
Percentage of reachable functions covered
40.0%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
fuzz/FuzzServer.c 3
src/modbus-tcp.c 3
src/modbus.c 8
src/modbus-data.c 1