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

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: fuzzer_listen

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 4791 88.6%
gold [1:9] 301 5.56%
yellow [10:29] 16 0.29%
greenyellow [30:49] 9 0.16%
lawngreen 50+ 287 5.31%
All colors 5404 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
600 4441 usrsctp_setsockopt call site: 04441 sctp_do_connect_x
483 3586 sctp_process_control call site: 03586 sctp_handle_stream_reset
454 1061 sctp_lowlevel_chunk_output call site: 01061 sctp_free_assoc
348 2708 sctp_alloc_chunklist call site: 02708 sctp_handle_sack
298 1537 sctp_add_addresses_to_i_ia call site: 01537 sctp_send_sack
277 3135 sctp_inpcb_bind_locked call site: 03135 sctp_process_cookie_existing
248 319 m_copydata call site: 00319 sctp_timer_start
227 4072 sctp_common_input_processing call site: 04072 sctp_process_data
205 570 sctp_generate_cause call site: 00570 sctp_abort_an_association
197 5052 sctp_setopt call site: 05052 sctp_timer_start
118 2589 sctp_handle_init call site: 02589 sctp_handle_init_ack
87 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc

Runtime coverage analysis

Covered functions
154
Functions that are reachable but not covered
429
Reachable functions
579
Percentage of reachable functions covered
25.91%
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
fuzzer/fuzzer_listen.c 5
usrsctplib/user_socket.c 43
usrsctplib/netinet/sctp_usrreq.c 15
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 79
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 69
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 30
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 4
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer_fragment

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 5255 82.3%
gold [1:9] 105 1.64%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1019 15.9%
All colors 6379 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
495 5865 usrsctp_sendv call site: 05865 usrsctp_getassocid
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
328 4439 sctp_setopt call site: 04439 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5057 sctp_setopt call site: 05057 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5408 soconnect call site: 05408 sctp6_connect
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management

Runtime coverage analysis

Covered functions
245
Functions that are reachable but not covered
381
Reachable functions
612
Percentage of reachable functions covered
37.75%
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
fuzzer/fuzzer_fragment.c 4
usrsctplib/user_socket.c 49
usrsctplib/netinet/sctp_usrreq.c 22
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 85
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 82
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 33
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 5
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer/fuzzer_listen.c

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 4306 79.7%
gold [1:9] 134 2.48%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 957 17.7%
All colors 5401 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
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
329 4459 sctp_setopt call site: 04459 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5068 sctp_setopt call site: 05068 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4806 sctp_aloc_assoc_connected call site: 04806 sctp_do_connect_x
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
75 1201 sctp_med_chunk_output call site: 01201 sctp_chunk_retransmission

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
346
Reachable functions
577
Percentage of reachable functions covered
40.03%
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
fuzzer/fuzzer_listen.c 4
usrsctplib/user_socket.c 43
usrsctplib/netinet/sctp_usrreq.c 15
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 79
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 69
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 30
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 4
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer_connect

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 5198 81.2%
gold [1:9] 100 1.56%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 1093 17.0%
All colors 6395 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
515 5871 usrsctp_sendv call site: 05871 usrsctp_conninput
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
328 4440 sctp_setopt call site: 04440 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5058 sctp_setopt call site: 05058 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4796 sctp_aloc_assoc_connected call site: 04796 sctp_do_connect_x
108 5414 soconnect call site: 05414 sctp6_connect
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
371
Reachable functions
613
Percentage of reachable functions covered
39.48%
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
fuzzer/fuzzer_connect.c 5
usrsctplib/user_socket.c 49
usrsctplib/netinet/sctp_usrreq.c 22
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 85
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 82
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 33
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 5
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer/fuzzer_connect.c

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 5191 81.2%
gold [1:9] 100 1.56%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 1092 17.0%
All colors 6387 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
511 5867 usrsctp_sendv call site: 05867 usrsctp_conninput
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
328 4439 sctp_setopt call site: 04439 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5057 sctp_setopt call site: 05057 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5413 soconnect call site: 05413 sctp6_connect
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
370
Reachable functions
611
Percentage of reachable functions covered
39.44%
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
fuzzer/fuzzer_connect.c 4
usrsctplib/user_socket.c 49
usrsctplib/netinet/sctp_usrreq.c 22
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 85
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 82
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 33
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 5
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer/fuzzer_connect.c

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 5306 81.5%
gold [1:9] 100 1.53%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 1094 16.8%
All colors 6504 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
520 5975 usrsctp_sendv call site: 05975 usrsctp_conninput
481 3597 sctp_process_control call site: 03597 sctp_handle_stream_reset
328 4461 sctp_setopt call site: 04461 sctp_do_connect_x
302 2762 sctp_process_control call site: 02762 sctp_handle_sack
242 1548 sctp_send_initiate call site: 01548 sctp_send_sack
222 3196 sctp_initialize_auth_params call site: 03196 sctp_process_cookie_existing
215 4079 sctp_common_input_processing call site: 04079 sctp_process_data
179 5079 sctp_setopt call site: 05079 sctp_timer_start
158 382 sctp_notify_adaptation_layer call site: 00382 sctp_notify_assoc_change
157 4817 sctp_aloc_assoc_connected call site: 04817 sctp_do_connect_x
108 5516 soconnect call site: 05516 sctp6_connect
85 1394 sctp_inpcb_free call site: 01394 sctp_threshold_management

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
390
Reachable functions
632
Percentage of reachable functions covered
38.29%
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
fuzzer/fuzzer_connect.c 5
programs/programs_helper.c 11
usrsctplib/user_socket.c 51
usrsctplib/netinet/sctp_usrreq.c 22
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 85
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 82
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 33
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 5
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer/fuzzer_fragment.c

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 5150 80.7%
gold [1:9] 107 1.67%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 1117 17.5%
All colors 6378 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
495 5864 usrsctp_sendv call site: 05864 usrsctp_getassocid
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
328 4439 sctp_setopt call site: 04439 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5057 sctp_setopt call site: 05057 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5408 soconnect call site: 05408 sctp6_connect
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
370
Reachable functions
611
Percentage of reachable functions covered
39.44%
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
fuzzer/fuzzer_fragment.c 4
usrsctplib/user_socket.c 49
usrsctplib/netinet/sctp_usrreq.c 22
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 85
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 82
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 33
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 5
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7

Fuzzer: fuzzer/fuzzer_listen.c

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 4321 79.7%
gold [1:9] 132 2.43%
yellow [10:29] 2 0.03%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 958 17.6%
All colors 5415 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
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
329 4472 sctp_setopt call site: 04472 sctp_do_connect_x
302 2756 sctp_process_control call site: 02756 sctp_handle_sack
242 1542 sctp_send_initiate call site: 01542 sctp_send_sack
222 3190 sctp_initialize_auth_params call site: 03190 sctp_process_cookie_existing
215 4073 sctp_common_input_processing call site: 04073 sctp_process_data
179 5081 sctp_setopt call site: 05081 sctp_timer_start
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
157 4819 sctp_aloc_assoc_connected call site: 04819 sctp_do_connect_x
85 1388 sctp_inpcb_free call site: 01388 sctp_threshold_management
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
75 1201 sctp_med_chunk_output call site: 01201 sctp_chunk_retransmission

Runtime coverage analysis

Covered functions
262
Functions that are reachable but not covered
354
Reachable functions
586
Percentage of reachable functions covered
39.59%
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
fuzzer/fuzzer_listen.c 5
usrsctplib/user_socket.c 45
usrsctplib/netinet/sctp_usrreq.c 15
usrsctplib/user_environment.c 2
usrsctplib/netinet/sctp_sysctl.c 1
usrsctplib/netinet/sctp_pcb.c 61
usrsctplib/netinet/sctputil.c 79
usrsctplib/netinet/sctp_callout.c 7
usrsctplib/netinet/sctp_bsd_addr.c 8
usrsctplib/netinet/sctp_userspace.c 4
usrsctplib/user_environment.h 1
usrsctplib/netinet/sctp_output.c 69
usrsctplib/netinet/sctp_auth.c 53
usrsctplib/netinet/sctp_indata.c 34
usrsctplib/user_mbuf.c 30
usrsctplib/netinet/sctp_os_userspace.h 3
usrsctplib/netinet/sctp_timer.c 16
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
usrsctplib/netinet6/sctp6_usrreq.c 4
usrsctplib/netinet/sctp_sha1.c 4
usrsctplib/netinet/sctp_asconf.c 39
usrsctplib/netinet/sctp_crc32.c 7
usrsctplib/netinet/sctp_input.c 40
usrsctplib/user_recv_thread.c 7
programs/programs_helper.c 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
userspace_shutdown /src/usrsctp/usrsctplib/user_socket.c 2 ['N/A', 'int'] 18 0 12 3 2 256 0 5005 145
sctp_drain_mbufs /src/usrsctp/usrsctplib/netinet/sctp_pcb.c 1 ['N/A'] 22 0 1662 326 112 253 1 4972 112
sctp_cwnd_update_rtcc_after_sack /src/usrsctp/usrsctplib/netinet/sctp_cc_functions.c 5 ['N/A', 'N/A', 'int', 'int', 'int'] 4 0 12 3 2 7 0 109 107
sctp6_in6getaddr /src/usrsctp/usrsctplib/netinet6/sctp6_usrreq.c 2 ['N/A', 'N/A'] 6 0 50 11 5 39 0 433 60
sctp_htcp_cwnd_update_after_sack /src/usrsctp/usrsctplib/netinet/sctp_cc_functions.c 5 ['N/A', 'N/A', 'int', 'int', 'int'] 7 0 127 31 13 14 0 84 58
m_pulldown /src/usrsctp/usrsctplib/user_mbuf.c 4 ['N/A', 'int', 'int', 'N/A'] 8 0 513 108 43 23 0 182 53
usrsctp_peeloff /src/usrsctp/usrsctplib/user_socket.c 2 ['N/A', 'int'] 21 0 287 58 21 291 0 5296 50
sctp6_getpeeraddr /src/usrsctp/usrsctplib/netinet6/sctp6_usrreq.c 2 ['N/A', 'N/A'] 3 0 50 11 5 7 0 57 47
sctp_sendm /src/usrsctp/usrsctplib/netinet/sctp_usrreq.c 6 ['N/A', 'int', 'N/A', 'N/A', 'N/A', 'N/A'] 26 0 125 30 12 317 0 6475 43

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
70.0%
628 / 896
Cyclomatic complexity statically reachable by fuzzers
93.0%
17271 / 18602

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

fuzzer/fuzzer_listen.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_setsockopt', 'sctp_process_control', 'sctp_lowlevel_chunk_output', 'sctp_alloc_chunklist', 'sctp_add_addresses_to_i_ia', 'sctp_inpcb_bind_locked', 'm_copydata', 'sctp_common_input_processing', 'sctp_generate_cause', 'sctp_setopt']

fuzzer/fuzzer_fragment.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_sendv', 'sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected']

fuzzer/fuzzer_listen.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected', 'sctp_inpcb_free']

fuzzer/fuzzer_connect.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_sendv', 'sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected']

fuzzer/fuzzer_connect.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_sendv', 'sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected']

fuzzer/fuzzer_connect.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_sendv', 'sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected']

fuzzer/fuzzer_fragment.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['usrsctp_sendv', 'sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected']

fuzzer/fuzzer_listen.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['sctp_process_control', 'sctp_setopt', 'sctp_send_initiate', 'sctp_initialize_auth_params', 'sctp_common_input_processing', 'sctp_notify_adaptation_layer', 'sctp_aloc_assoc_connected', 'sctp_inpcb_free']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
sctp_insert_sharedkey 34 8 23.52% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_common_input_processing 341 164 48.09% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_process_control 767 282 36.76% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_handle_cookie_echo 370 143 38.64% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_add_addresses_to_i_ia 150 25 16.66% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_lowlevel_chunk_output 540 72 13.33% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_send_resp_msg 242 114 47.10% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_add_addr_to_vrf 224 103 45.98% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_findassociation_ep_addr 291 80 27.49% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_pcb_findep 59 31 52.54% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_inpcb_bind_locked 264 87 32.95% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_tcb_special_locate 211 24 11.37% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_endpoint_probe 179 73 40.78% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_findassoc_by_vtag 70 35 50.0% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_setopt 2815 183 6.500% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_listen 153 34 22.22% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_listen']
sctp_timer_start 303 114 37.62% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_get_ifa_hash_val 40 16 40.0% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
recv_thread_init 204 80 39.21% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
socreate 48 22 45.83% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
usrsctp_setsockopt 71 27 38.02% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_is_there_unsent_data 50 24 48.0% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_handle_init_ack 54 28 51.85% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_process_init_ack 126 40 31.74% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_process_init 114 48 42.10% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_chunk_output 169 66 39.05% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_lower_sosend 996 287 28.81% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
sctp_med_chunk_output 815 313 38.40% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_move_to_outqueue 354 155 43.78% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_clean_up_datalist 68 37 54.41% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_clean_up_ctl 33 18 54.54% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_set_prsctp_policy 35 6 17.14% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
sctp_copy_mbufchain 108 45 41.66% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_findasoc_ep_asocid_locked 31 11 35.48% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_inpcb_free 259 104 40.15% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_add_remote_addr 293 115 39.24% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_free_assoc 372 178 47.84% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_load_addresses_from_init 575 265 46.08% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_does_stcb_own_this_addr 166 51 30.72% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_iterator_inp_being_freed 31 8 25.80% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_aloc_assoc_locked 170 64 37.64% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctpconn_connect 103 53 51.45% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
sctp_ulp_notify 190 32 16.84% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_cmpaddr 38 12 31.57% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_invoke_recv_callback 88 6 6.818% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_add_to_readq 85 34 40.0% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sctp_sorecvmsg 734 264 35.96% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
m_adj 55 22 40.0% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
sofree 37 18 48.64% ['/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', 'fuzzer_listen']
usrsctp_sendv 102 34 33.33% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
usrsctp_recvv 135 50 37.03% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']
user_connect 48 13 27.08% ['/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_connect.c', 'fuzzer_connect', 'fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_fragment.c']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/usrsctp/programs/programs_helper.c ['fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_callout.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_input.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_os_userspace.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_auth.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_ss_functions.c [] []
/src/usrsctp/usrsctplib/user_environment.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_indata.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_userspace.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_bsd_addr.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/fuzzer/fuzzer_listen.c ['fuzzer_listen', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_timer.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_cc_functions.c [] []
/src/usrsctp/usrsctplib/netinet/sctp_asconf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/fuzzer/fuzzer_fragment.c ['fuzzer_fragment', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_fragment', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/user_socket.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_pcb.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/fuzzer/fuzzer_connect.c ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c'] ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c']
/src/usrsctp/usrsctplib/netinet6/sctp6_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/user_mbuf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctputil.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/user_recv_thread.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/usr/include/x86_64-linux-gnu/bits/byteswap.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/user_environment.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_crc32.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_output.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_sysctl.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_peeloff.c [] []
/src/usrsctp/usrsctplib/netinet/sctp_sha1.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer/fuzzer_listen.c', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']

Directories in report

Directory
/src/usrsctp/usrsctplib/netinet6/
/src/usrsctp/usrsctplib/
/src/usrsctp/fuzzer/
/src/usrsctp/programs/
/src/usrsctp/usrsctplib/netinet/
/usr/include/x86_64-linux-gnu/bits/