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] 302 5.58%
yellow [10:29] 14 0.25%
greenyellow [30:49] 5 0.09%
lawngreen 50+ 292 5.40%
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] 107 1.67%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1017 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_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 4208 65.8%
gold [1:9] 183 2.86%
yellow [10:29] 87 1.36%
greenyellow [30:49] 53 0.82%
lawngreen 50+ 1864 29.1%
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
495 5871 usrsctp_sendv call site: 05871 usrsctp_getassocid
249 4440 sctp_setopt call site: 04440 sctp_deact_sharedkey
179 5058 sctp_setopt call site: 05058 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
157 4796 sctp_aloc_assoc_connected call site: 04796 sctp_do_connect_x
108 5414 soconnect call site: 05414 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
72 4957 sctp_setopt call site: 04957 sctp_dynamic_set_primary
65 5573 sctp_lower_sosend call site: 05573 sctp_sendall
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq

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 4385 68.6%
gold [1:9] 167 2.61%
yellow [10:29] 33 0.51%
greenyellow [30:49] 44 0.68%
lawngreen 50+ 1758 27.5%
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
328 4439 sctp_setopt call site: 04439 sctp_do_connect_x
179 5057 sctp_setopt call site: 05057 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
157 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5413 soconnect call site: 05413 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
72 4956 sctp_setopt call site: 04956 sctp_dynamic_set_primary
65 5569 sctp_lower_sosend call site: 05569 sctp_sendall
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
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 3512 65.0%
gold [1:9] 201 3.72%
yellow [10:29] 33 0.61%
greenyellow [30:49] 44 0.81%
lawngreen 50+ 1611 29.8%
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
329 4459 sctp_setopt call site: 04459 sctp_do_connect_x
179 5068 sctp_setopt call site: 05068 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
157 4806 sctp_aloc_assoc_connected call site: 04806 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
72 4967 sctp_setopt call site: 04967 sctp_dynamic_set_primary
69 5307 init_fuzzer call site: 05307 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

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 4500 69.1%
gold [1:9] 167 2.56%
yellow [10:29] 33 0.50%
greenyellow [30:49] 44 0.67%
lawngreen 50+ 1760 27.0%
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
328 4461 sctp_setopt call site: 04461 sctp_do_connect_x
179 5079 sctp_setopt call site: 05079 sctp_timer_start
169 3249 sctp_send_cookie_ack call site: 03249 sctp_process_cookie_existing
157 4817 sctp_aloc_assoc_connected call site: 04817 sctp_do_connect_x
108 5516 soconnect call site: 05516 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 5428 usrsctp_recvv call site: 05428 usrsctp_connect
72 4978 sctp_setopt call site: 04978 sctp_dynamic_set_primary
65 5677 sctp_lower_sosend call site: 05677 sctp_sendall
64 1713 sctp_timeout_handler call site: 01713 sctp_handle_addr_wq

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_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 3527 65.1%
gold [1:9] 199 3.67%
yellow [10:29] 33 0.60%
greenyellow [30:49] 44 0.81%
lawngreen 50+ 1612 29.7%
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
329 4472 sctp_setopt call site: 04472 sctp_do_connect_x
179 5081 sctp_setopt call site: 05081 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
157 4819 sctp_aloc_assoc_connected call site: 04819 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
72 4980 sctp_setopt call site: 04980 sctp_dynamic_set_primary
69 5320 init_fuzzer call site: 05320 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 4344 68.1%
gold [1:9] 174 2.72%
yellow [10:29] 33 0.51%
greenyellow [30:49] 44 0.68%
lawngreen 50+ 1783 27.9%
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
328 4439 sctp_setopt call site: 04439 sctp_do_connect_x
179 5057 sctp_setopt call site: 05057 sctp_timer_start
169 3243 sctp_send_cookie_ack call site: 03243 sctp_process_cookie_existing
157 4795 sctp_aloc_assoc_connected call site: 04795 sctp_do_connect_x
108 5408 soconnect call site: 05408 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
72 4956 sctp_setopt call site: 04956 sctp_dynamic_set_primary
65 5566 sctp_lower_sosend call site: 05566 sctp_sendall
64 1707 sctp_timeout_handler call site: 01707 sctp_handle_addr_wq
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

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_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', 'sctp_lower_sosend']

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_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_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_lower_sosend']

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', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_handle_cookie_echo 370 143 38.64% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_add_addresses_to_i_ia 150 25 16.66% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_lowlevel_chunk_output 540 216 40.0% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_send_resp_msg 242 114 47.10% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_add_addr_to_vrf 224 103 45.98% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_findassociation_ep_addr 291 80 27.49% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_pcb_findep 59 31 52.54% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_inpcb_bind_locked 264 87 32.95% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_tcb_special_locate 211 24 11.37% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_endpoint_probe 179 73 40.78% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_findassoc_by_vtag 70 35 50.0% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_setopt 2815 249 8.845% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_listen 153 34 22.22% ['fuzzer_listen', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c']
sctp_timer_start 296 150 50.67% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
recv_thread_init 204 80 39.21% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
socreate 48 22 45.83% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
usrsctp_setsockopt 71 27 38.02% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_is_there_unsent_data 50 24 48.0% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_chunk_output 169 79 46.74% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_lower_sosend 996 302 30.32% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', 'fuzzer_connect']
sctp_move_to_outqueue 354 194 54.80% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_set_prsctp_policy 35 6 17.14% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', 'fuzzer_connect']
sctp_findasoc_ep_asocid_locked 31 11 35.48% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_inpcb_free 259 127 49.03% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_does_stcb_own_this_addr 166 51 30.72% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_iterator_inp_being_freed 31 8 25.80% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_aloc_assoc_locked 170 64 37.64% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctpconn_connect 103 53 51.45% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', 'fuzzer_connect']
sctp_invoke_recv_callback 88 6 6.818% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sofree 37 18 48.64% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
usrsctp_sendv 102 34 33.33% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', 'fuzzer_connect']
user_connect 48 13 27.08% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', 'fuzzer_connect']
sctp_handle_asconf_ack 116 19 16.37% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_asconf_send_nat_state_update 166 46 27.71% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_handle_auth 83 18 21.68% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_express_handle_sack 387 47 12.14% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_handle_sack 591 60 10.15% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_add_chk_to_control 58 28 48.27% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_kick_prsctp_reorder_queue 108 16 14.81% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_handle_stream_reset_response 131 16 12.21% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
process_chunk_drop 189 96 50.79% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
send_forward_tsn 162 78 48.14% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_send_packet_dropped 118 17 14.40% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_is_ifa_addr_preferred 53 5 9.433% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_is_ifa_addr_acceptable 39 7 17.94% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_choose_boundspecific_stcb 120 61 50.83% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_remove_net 51 28 54.90% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_find_alternate_net 175 62 35.42% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']
sctp_timeout_handler 329 112 34.04% ['fuzzer_fragment', '/src/usrsctp/fuzzer/fuzzer_connect.c', '/src/usrsctp/fuzzer/fuzzer_listen.c', '/src/usrsctp/fuzzer/fuzzer_fragment.c', 'fuzzer_listen', 'fuzzer_connect']

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_environment.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] []
/src/usrsctp/usrsctplib/user_mbuf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_ss_functions.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_auth.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_sha1.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_userspace.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_bsd_addr.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/user_recv_thread.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_os_userspace.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_cc_functions.c [] []
/src/usrsctp/usrsctplib/netinet/sctp_indata.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/usr/include/x86_64-linux-gnu/bits/byteswap.h ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] []
/src/usrsctp/usrsctplib/netinet6/sctp6_usrreq.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] []
/src/usrsctp/programs/programs_helper.c ['fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_input.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_pcb.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_output.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/fuzzer/fuzzer_fragment.c ['fuzzer_fragment', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_fragment', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_timer.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctputil.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_asconf.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_crc32.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] []
/src/usrsctp/usrsctplib/netinet/sctp_peeloff.c [] []
/src/usrsctp/usrsctplib/user_environment.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_sysctl.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']
/src/usrsctp/usrsctplib/netinet/sctp_callout.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.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/user_socket.c ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c'] ['fuzzer_listen', 'fuzzer_fragment', 'fuzzer_connect', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_connect.c', 'fuzzer/fuzzer_listen.c', 'fuzzer/fuzzer_fragment.c']

Directories in report

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