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 4794 88.6%
gold [1:9] 294 5.43%
yellow [10:29] 27 0.49%
greenyellow [30:49] 2 0.03%
lawngreen 50+ 290 5.36%
All colors 5407 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
603 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 5055 sctp_setopt call site: 05055 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 5254 82.3%
gold [1:9] 105 1.64%
yellow [10:29] 2 0.03%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1019 15.9%
All colors 6380 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 5866 usrsctp_sendv call site: 05866 usrsctp_getassocid
481 3591 sctp_process_control call site: 03591 sctp_handle_stream_reset
327 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
180 5059 sctp_setopt call site: 05059 sctp_timer_start
160 4794 sctp_aloc_assoc_connected call site: 04794 sctp_do_connect_x
158 376 sctp_notify_adaptation_layer call site: 00376 sctp_notify_assoc_change
108 5409 soconnect call site: 05409 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_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 4219 65.9%
gold [1:9] 175 2.73%
yellow [10:29] 87 1.36%
greenyellow [30:49] 23 0.35%
lawngreen 50+ 1892 29.5%
All colors 6396 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 5872 usrsctp_sendv call site: 05872 usrsctp_getassocid
249 4440 sctp_setopt call site: 04440 sctp_deact_sharedkey
180 5060 sctp_setopt call site: 05060 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
160 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5415 soconnect call site: 05415 sctp6_connect
97 2834 sctp_handle_sack call site: 02834 sctp_timer_start
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
76 2516 sctp_is_vtag_good call site: 02516 sctp_free_assoc
73 4959 sctp_setopt call site: 04959 sctp_dynamic_set_primary
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
64 5575 sctp_lower_sosend call site: 05575 sctp_sendall

Runtime coverage analysis

Covered functions
368
Functions that are reachable but not covered
260
Reachable functions
613
Percentage of reachable functions covered
57.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_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 4512 69.3%
gold [1:9] 154 2.36%
yellow [10:29] 41 0.63%
greenyellow [30:49] 14 0.21%
lawngreen 50+ 1784 27.4%
All colors 6505 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 5976 usrsctp_sendv call site: 05976 usrsctp_conninput
327 4461 sctp_setopt call site: 04461 sctp_do_connect_x
180 5081 sctp_setopt call site: 05081 sctp_timer_start
169 3249 sctp_send_cookie_ack call site: 03249 sctp_process_cookie_existing
160 4816 sctp_aloc_assoc_connected call site: 04816 sctp_do_connect_x
108 5517 soconnect call site: 05517 sctp6_connect
99 2840 sctp_handle_sack call site: 02840 sctp_timer_start
85 3503 sctpconn_attach call site: 03503 sctp_move_pcb_and_assoc
83 5429 usrsctp_recvv call site: 05429 usrsctp_connect
73 4980 sctp_setopt call site: 04980 sctp_dynamic_set_primary
64 1713 sctp_timeout_handler call site: 01713 sctp_handle_addr_wq
64 5679 sctp_lower_sosend call site: 05679 sctp_sendall

Runtime coverage analysis

Covered functions
390
Functions that are reachable but not covered
263
Reachable functions
632
Percentage of reachable functions covered
58.39%
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_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 4397 68.8%
gold [1:9] 154 2.41%
yellow [10:29] 41 0.64%
greenyellow [30:49] 14 0.21%
lawngreen 50+ 1782 27.8%
All colors 6388 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 5868 usrsctp_sendv call site: 05868 usrsctp_conninput
327 4439 sctp_setopt call site: 04439 sctp_do_connect_x
180 5059 sctp_setopt call site: 05059 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
160 4794 sctp_aloc_assoc_connected call site: 04794 sctp_do_connect_x
108 5414 soconnect call site: 05414 sctp6_connect
99 2834 sctp_handle_sack call site: 02834 sctp_timer_start
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
73 4958 sctp_setopt call site: 04958 sctp_dynamic_set_primary
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
64 5571 sctp_lower_sosend call site: 05571 sctp_sendall
57 2767 sctp_express_handle_sack call site: 02767 sctp_handle_sack

Runtime coverage analysis

Covered functions
390
Functions that are reachable but not covered
243
Reachable functions
611
Percentage of reachable functions covered
60.23%
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_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 3543 65.3%
gold [1:9] 186 3.43%
yellow [10:29] 41 0.75%
greenyellow [30:49] 14 0.25%
lawngreen 50+ 1634 30.1%
All colors 5418 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
328 4472 sctp_setopt call site: 04472 sctp_do_connect_x
180 5083 sctp_setopt call site: 05083 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
160 4818 sctp_aloc_assoc_connected call site: 04818 sctp_do_connect_x
99 2834 sctp_handle_sack call site: 02834 sctp_timer_start
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
73 4982 sctp_setopt call site: 04982 sctp_dynamic_set_primary
69 5323 init_fuzzer call site: 05323 usrsctp_accept
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
57 2767 sctp_express_handle_sack call site: 02767 sctp_handle_sack
54 873 sctp_source_address_selection call site: 00873 sctp_choose_boundall
54 1542 sctp_send_initiate call site: 01542 sctp_send_sack

Runtime coverage analysis

Covered functions
390
Functions that are reachable but not covered
228
Reachable functions
586
Percentage of reachable functions covered
61.09%
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

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 4356 68.2%
gold [1:9] 161 2.52%
yellow [10:29] 41 0.64%
greenyellow [30:49] 14 0.21%
lawngreen 50+ 1807 28.3%
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
327 4439 sctp_setopt call site: 04439 sctp_do_connect_x
180 5059 sctp_setopt call site: 05059 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
160 4794 sctp_aloc_assoc_connected call site: 04794 sctp_do_connect_x
108 5409 soconnect call site: 05409 sctp6_connect
99 2834 sctp_handle_sack call site: 02834 sctp_timer_start
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
73 4958 sctp_setopt call site: 04958 sctp_dynamic_set_primary
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
64 5568 sctp_lower_sosend call site: 05568 sctp_sendall
57 2767 sctp_express_handle_sack call site: 02767 sctp_handle_sack

Runtime coverage analysis

Covered functions
390
Functions that are reachable but not covered
243
Reachable functions
611
Percentage of reachable functions covered
60.23%
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 3528 65.2%
gold [1:9] 188 3.47%
yellow [10:29] 41 0.75%
greenyellow [30:49] 14 0.25%
lawngreen 50+ 1633 30.2%
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
328 4459 sctp_setopt call site: 04459 sctp_do_connect_x
180 5070 sctp_setopt call site: 05070 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
160 4805 sctp_aloc_assoc_connected call site: 04805 sctp_do_connect_x
99 2834 sctp_handle_sack call site: 02834 sctp_timer_start
85 3497 sctpconn_attach call site: 03497 sctp_move_pcb_and_assoc
73 4969 sctp_setopt call site: 04969 sctp_dynamic_set_primary
69 5310 init_fuzzer call site: 05310 usrsctp_accept
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
57 2767 sctp_express_handle_sack call site: 02767 sctp_handle_sack
54 873 sctp_source_address_selection call site: 00873 sctp_choose_boundall
54 1542 sctp_send_initiate call site: 01542 sctp_send_sack

Runtime coverage analysis

Covered functions
390
Functions that are reachable but not covered
220
Reachable functions
577
Percentage of reachable functions covered
61.87%
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

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_aloc_assoc_connected', 'sctp_notify_adaptation_layer']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'soconnect', 'sctp_handle_sack', 'sctpconn_attach', 'sctp_is_vtag_good']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'soconnect', 'sctp_handle_sack', 'sctpconn_attach', 'usrsctp_recvv']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'soconnect', 'sctp_handle_sack', 'sctpconn_attach', 'sctp_timeout_handler']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'sctp_handle_sack', 'sctpconn_attach', 'init_fuzzer', 'sctp_timeout_handler', 'sctp_express_handle_sack']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'soconnect', 'sctp_handle_sack', 'sctpconn_attach', 'sctp_timeout_handler']

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_setopt', 'sctp_send_cookie_ack', 'sctp_aloc_assoc_connected', 'sctp_handle_sack', 'sctpconn_attach', 'init_fuzzer', 'sctp_timeout_handler', 'sctp_express_handle_sack']

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% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_handle_cookie_echo 370 146 39.45% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_add_addresses_to_i_ia 150 25 16.66% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_lowlevel_chunk_output 540 216 40.0% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_send_resp_msg 242 114 47.10% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_add_addr_to_vrf 224 103 45.98% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_findassociation_ep_addr 291 80 27.49% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_pcb_findep 59 31 52.54% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_inpcb_bind_locked 264 87 32.95% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_tcb_special_locate 211 24 11.37% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_endpoint_probe 179 73 40.78% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_findassoc_by_vtag 70 35 50.0% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_setopt 2812 247 8.783% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_listen 153 34 22.22% ['fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_timer_start 296 152 51.35% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
recv_thread_init 204 80 39.21% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
socreate 48 22 45.83% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
usrsctp_setsockopt 71 27 38.02% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_is_there_unsent_data 50 24 48.0% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_chunk_output 169 79 46.74% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_lower_sosend 996 302 30.32% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_move_to_outqueue 354 194 54.80% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_set_prsctp_policy 35 6 17.14% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_findasoc_ep_asocid_locked 31 11 35.48% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_inpcb_free 259 127 49.03% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_does_stcb_own_this_addr 166 51 30.72% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_iterator_inp_being_freed 31 8 25.80% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_aloc_assoc_locked 170 64 37.64% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctpconn_connect 103 53 51.45% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_invoke_recv_callback 88 6 6.818% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_sorecvmsg 734 355 48.36% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sofree 37 18 48.64% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
usrsctp_sendv 102 34 33.33% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
user_connect 48 13 27.08% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_handle_asconf_ack 116 19 16.37% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_asconf_send_nat_state_update 166 46 27.71% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_handle_auth 83 18 21.68% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_express_handle_sack 387 47 12.14% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_handle_sack 591 60 10.15% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_add_chk_to_control 58 28 48.27% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_kick_prsctp_reorder_queue 108 16 14.81% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_handle_stream_reset_response 131 16 12.21% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
process_chunk_drop 189 96 50.79% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
send_forward_tsn 162 78 48.14% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_send_packet_dropped 118 17 14.40% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_is_ifa_addr_preferred 53 5 9.433% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_is_ifa_addr_acceptable 39 7 17.94% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_choose_boundspecific_stcb 120 61 50.83% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_find_alternate_net 175 62 35.42% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.c']
sctp_timeout_handler 329 98 29.78% ['fuzzer_fragment', 'fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_connect', '/src/usrsctp/fuzzer/fuzzer_connect.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/usrsctplib/user_socket.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/user_environment.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_userspace.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_pcb.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctputil.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_output.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_bsd_addr.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_peeloff.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_callout.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet6/sctp6_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.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']
/usr/include/x86_64-linux-gnu/bits/byteswap.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_indata.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/user_recv_thread.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_sha1.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/user_mbuf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_auth.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_timer.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_asconf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_ss_functions.c [] []
/src/usrsctp/programs/programs_helper.c ['fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/user_environment.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_os_userspace.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_crc32.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.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/netinet/sctp_input.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']
/src/usrsctp/usrsctplib/netinet/sctp_cc_functions.c [] []
/src/usrsctp/usrsctplib/netinet/sctp_sysctl.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c', 'fuzzer/fuzzer_listen.c']

Directories in report

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