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

Fuzzer details

Fuzzer: fuzz-imap-utf7

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 473 63.4%
gold [1:9] 124 16.6%
yellow [10:29] 13 1.74%
greenyellow [30:49] 5 0.67%
lawngreen 50+ 130 17.4%
All colors 745 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1620 1620 4 :

['iostream_pump_unref', 'iostream_pump_stop', 'i_stream_unref', 'o_stream_unref']

1620 1620 iostream_pump_destroy call site: 00657 /src/dovecot/src/lib/iostream-pump.c:211
677 677 1 :

['event_filter_match_source']

677 677 event_want_level call site: 00154 /src/dovecot/src/lib/event-log.c:320
25 25 1 :

['event_find_field_recursive']

25 121 event_add_str call site: 00146 /src/dovecot/src/lib/lib-event.c:1069
15 15 1 :

['random_open_urandom']

37 37 random_read call site: 00016 /src/dovecot/src/lib/randgen.c:88
14 1648 8 :

['str_append', 'str_append_c', 'str_truncate', 'mbase64_decode_to_utf8', 'str_len', 'str_append_data', 'strchr', 'str_printfa']

14 1648 imap_utf7_to_utf8_int call site: 00625 /src/dovecot/src/lib-imap/imap-utf7.c:306
14 1550 6 :

['mbase64_decode_to_utf8', 'str_len', 'str_printfa', 'str_append_c', 'strchr', 'str_truncate']

14 1550 imap_utf7_to_utf8_int call site: 00633 /src/dovecot/src/lib-imap/imap-utf7.c:334
8 8 2 :

['event_ref', 'event_copy_parent_defaults']

8 8 event_create_internal call site: 00086 /src/dovecot/src/lib/lib-event.c:421
4 4 1 :

['i_warning']

6 48 random_init call site: 00007 /src/dovecot/src/lib/randgen.c:185
4 4 1 :

['i_fatal']

4 4 fd_close_on_exec call site: 00026 /src/dovecot/src/lib/fd-util.c:21
4 4 1 :

['i_fatal']

4 4 hostpid_init call site: 00386 /src/dovecot/src/lib/hostpid.c:35
4 4 1 :

['i_fatal']

4 4 lib_signals_ignore_forced call site: 00588 /src/dovecot/src/lib/lib-signals.c:567
4 4 1 :

['i_fatal']

4 4 i_gettimeofday call site: 00084 /src/dovecot/src/lib/time-util.c:12

Runtime coverage analysis

Covered functions
124
Functions that are reachable but not covered
185
Reachable functions
301
Percentage of reachable functions covered
38.54%
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
lib-imap/fuzz-imap-utf7.c 1
lib-test/fuzzer.c 2
lib/lib.c 6
lib/failures.c 6
lib/randgen.c 4
lib/fd-util.c 2
lib/./lib.h 1
lib/data-stack.c 17
lib/./malloc-overflow.h 2
lib/bits.c 1
lib/./bits.h 1
lib/lib-event.c 20
lib/mempool-alloconly.c 2
lib/./mempool.h 6
lib/time-util.c 2
lib/strfuncs.c 6
lib/imem.c 1
lib/./array.h 10
lib/buffer.c 16
lib/mempool.c 1
lib/event-log.c 2
lib/event-filter.c 19
lib/wildcard-match.c 4
lib/printf-format-fix.c 5
lib/net.c 4
lib/backtrace-string.c 3
lib/str.c 7
lib/mempool-datastack.c 1
lib/./str.h 3
lib/./strfuncs.h 1
lib/hostpid.c 1
lib/var-expand.c 1
lib/lib-signals.c 15
lib/ioloop.c 19
lib/ioloop-notify-inotify.c 2
lib/ioloop-notify-fd.c 1
lib/istream.c 4
lib/ioloop-epoll.c 5
lib/array.c 3
lib/ioloop-iolist.c 2
lib/iostream.c 2
lib/memarea.c 1
lib-imap/imap-utf7.c 9
lib-imap/../../src/lib/str.h 6
lib-imap/../../src/lib/malloc-overflow.h 1
lib/unichar.c 3
lib/./unichar.h 2
lib-imap/../../src/lib/unichar.h 1
lib/iostream-pump.c 3
lib/ostream.c 3
lib/priorityq.c 7

Fuzzer: fuzz-imap-bodystructure

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 524 45.8%
gold [1:9] 122 10.6%
yellow [10:29] 6 0.52%
greenyellow [30:49] 10 0.87%
lawngreen 50+ 480 42.0%
All colors 1142 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1575 1620 4 :

['iostream_pump_unref', 'iostream_pump_stop', 'i_stream_unref', 'o_stream_unref']

1575 1620 iostream_pump_destroy call site: 01055 /src/dovecot/src/lib/iostream-pump.c:211
677 677 1 :

['event_filter_match_source']

677 677 event_want_level call site: 00154 /src/dovecot/src/lib/event-log.c:320
136 684 15 :

['imap_parser_read_literal', 'imap_parser_open_list', 'imap_parser_close_list', 'imap_parser_read_literal_data', 'i_panic', 'imap_parser_read_text', 'imap_parser_is_next_text', 'i_stream_skip', 'imap_parser_read_atom', 'i_unreached', 'imap_parser_skip_to_next', 'i_stream_get_data', 'imap_parser_is_next_resp_text', 'imap_parser_read_string', 'is_valid_atom_char']

136 684 imap_parser_read_arg call site: 00649 /src/dovecot/src/lib-imap/imap-parser.c:645
63 113 3 :

['array_get_i', 'array_append_space_i', 'list_add_ghost_eol']

63 113 finish_line call site: 00716 /src/dovecot/src/lib-imap/imap-parser.c:779
33 33 1 :

['i_stream_seek']

71 83 i_stream_read_memarea call site: 00611 /src/dovecot/src/lib/istream.c:344
25 25 1 :

['event_find_field_recursive']

25 121 event_add_str call site: 00146 /src/dovecot/src/lib/lib-event.c:1069
18 18 1 :

['imap_parser_is_next_resp_text']

22 22 imap_parser_read_arg call site: 00661 /src/dovecot/src/lib-imap/imap-parser.c:694
17 17 1 :

['imap_parser_delete_extra_eol']

17 393 imap_parser_read_args call site: 00639 /src/dovecot/src/lib-imap/imap-parser.c:809
15 15 1 :

['random_open_urandom']

37 37 random_read call site: 00016 /src/dovecot/src/lib/randgen.c:88
10 101 4 :

['memarea_unref', 'p_free_internal.705', 'i_stream_unref', 'i_stream_snapshot_free']

10 101 i_stream_snapshot_free call site: 00477 /src/dovecot/src/lib/istream.c:262
10 10 1 :

['i_stream_init_parent']

10 13 i_stream_create call site: 00599 /src/dovecot/src/lib/istream.c:1250
10 10 1 :

['memarea_unref']

10 10 i_stream_free_buffer call site: 00616 /src/dovecot/src/lib/istream.c:453

Runtime coverage analysis

Covered functions
219
Functions that are reachable but not covered
189
Reachable functions
391
Percentage of reachable functions covered
51.66%
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
lib-imap/fuzz-imap-bodystructure.c 6
lib-test/fuzzer.c 2
lib/lib.c 6
lib/failures.c 6
lib/randgen.c 4
lib/fd-util.c 2
lib/./lib.h 1
lib/data-stack.c 19
lib/./malloc-overflow.h 2
lib/bits.c 1
lib/./bits.h 1
lib/lib-event.c 20
lib/mempool-alloconly.c 2
lib/./mempool.h 6
lib/time-util.c 2
lib/strfuncs.c 13
lib/imem.c 1
lib/./array.h 10
lib/buffer.c 17
lib/mempool.c 1
lib/event-log.c 2
lib/event-filter.c 19
lib/wildcard-match.c 4
lib/printf-format-fix.c 5
lib/net.c 4
lib/backtrace-string.c 3
lib/str.c 7
lib/mempool-datastack.c 1
lib/./str.h 3
lib/./strfuncs.h 1
lib/hostpid.c 1
lib/var-expand.c 1
lib/lib-signals.c 15
lib/ioloop.c 19
lib/ioloop-notify-inotify.c 2
lib/ioloop-notify-fd.c 1
lib/istream.c 19
lib/ioloop-epoll.c 5
lib/array.c 3
lib/ioloop-iolist.c 2
lib/iostream.c 5
lib/memarea.c 2
lib-imap/imap-bodystructure.c 14
lib/istream-data.c 1
lib-imap/imap-parser.c 24
lib-imap/../../src/lib/malloc-overflow.h 1
lib-imap/../../src/lib/mempool.h 3
lib-imap/../../src/lib/array.h 6
lib-imap/../../src/lib/lib.h 1
lib/strescape.c 1
lib/ostream.c 9
lib-imap/imap-arg.c 6
lib/strnum.c 4
lib-imap/imap-envelope.c 5
lib-imap/../../src/lib/str.h 4
lib-imap/imap-quote.c 7
lib-mail/message-part.c 2
lib/iostream-pump.c 3
lib/priorityq.c 7

Fuzzer: fuzz-message-parser

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 459 59.8%
gold [1:9] 99 12.9%
yellow [10:29] 27 3.52%
greenyellow [30:49] 3 0.39%
lawngreen 50+ 179 23.3%
All colors 767 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1575 1620 4 :

['iostream_pump_unref', 'iostream_pump_stop', 'i_stream_unref', 'o_stream_unref']

1575 1620 iostream_pump_destroy call site: 00679 /src/dovecot/src/lib/iostream-pump.c:211
677 677 1 :

['event_filter_match_source']

677 677 event_want_level call site: 00154 /src/dovecot/src/lib/event-log.c:320
33 33 1 :

['i_stream_seek']

71 83 i_stream_read_memarea call site: 00625 /src/dovecot/src/lib/istream.c:344
25 25 1 :

['event_find_field_recursive']

25 121 event_add_str call site: 00146 /src/dovecot/src/lib/lib-event.c:1069
16 16 2 :

['i_stream_read_bytes.279', 'i_panic']

16 437 message_parse_header_next call site: 00000 /src/dovecot/src/lib-mail/message-header-parser.c:229
16 16 2 :

['i_stream_get_name', 'i_panic']

16 16 i_stream_default_snapshot call site: 00000 /src/dovecot/src/lib/istream.c:229
15 15 1 :

['random_open_urandom']

37 37 random_read call site: 00016 /src/dovecot/src/lib/randgen.c:88
12 12 1 :

['i_stream_get_data_size']

12 12 parse_next_header call site: 00000 /src/dovecot/src/lib-mail/message-parser.c:631
10 10 1 :

['i_stream_init_parent']

10 13 i_stream_create call site: 00594 /src/dovecot/src/lib/istream.c:1250
8 8 2 :

['event_ref', 'event_copy_parent_defaults']

8 8 event_create_internal call site: 00086 /src/dovecot/src/lib/lib-event.c:421
6 6 1 :

['i_unreached']

6 6 i_stream_unref call site: 00477 /src/dovecot/src/lib/istream.c:71
4 4 1 :

['i_warning']

6 48 random_init call site: 00007 /src/dovecot/src/lib/randgen.c:185

Runtime coverage analysis

Covered functions
208
Functions that are reachable but not covered
168
Reachable functions
312
Percentage of reachable functions covered
46.15%
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
lib-mail/fuzz-message-parser.c 1
lib-test/fuzzer.c 2
lib/lib.c 6
lib/failures.c 6
lib/randgen.c 4
lib/fd-util.c 2
lib/./lib.h 1
lib/data-stack.c 17
lib/./malloc-overflow.h 2
lib/bits.c 1
lib/./bits.h 1
lib/lib-event.c 20
lib/mempool-alloconly.c 2
lib/./mempool.h 6
lib/time-util.c 2
lib/strfuncs.c 6
lib/imem.c 1
lib/./array.h 10
lib/buffer.c 15
lib/mempool.c 1
lib/event-log.c 2
lib/event-filter.c 19
lib/wildcard-match.c 4
lib/printf-format-fix.c 5
lib/net.c 4
lib/backtrace-string.c 3
lib/str.c 7
lib/mempool-datastack.c 1
lib/./str.h 3
lib/./strfuncs.h 1
lib/hostpid.c 1
lib/var-expand.c 1
lib/lib-signals.c 15
lib/ioloop.c 19
lib/ioloop-notify-inotify.c 2
lib/ioloop-notify-fd.c 1
lib/istream.c 17
lib/ioloop-epoll.c 5
lib/array.c 3
lib/ioloop-iolist.c 2
lib/iostream.c 4
lib/memarea.c 2
lib-test/test-istream.c 1
lib-test/../../src/lib/malloc-overflow.h 1
lib-test/../../src/lib/mempool.h 1
lib-mail/message-parser.c 9
lib-mail/../../src/lib/malloc-overflow.h 1
lib-mail/../../src/lib/mempool.h 2
lib-mail/../../src/lib/array.h 4
lib-mail/../../src/lib/istream.h 1
lib-mail/message-size.c 1
lib-mail/message-header-parser.c 1
lib/iostream-pump.c 3
lib/ostream.c 3
lib/priorityq.c 7

Fuzzer: fuzz-json-istream

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 589 65.7%
gold [1:9] 77 8.59%
yellow [10:29] 3 0.33%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 227 25.3%
All colors 896 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1575 1620 4 :

['iostream_pump_unref', 'iostream_pump_stop', 'i_stream_unref', 'o_stream_unref']

1575 1620 iostream_pump_destroy call site: 00809 /src/dovecot/src/lib/iostream-pump.c:211
753 753 1 :

['json_parser_callback_string_stream']

753 753 json_parser_do_parse_value call site: 00000 /src/dovecot/src/lib-json/json-parser.c:1973
709 754 2 :

['i_stream_unref', 'json_string_stream_create']

709 962 json_parser_callback_string_value call site: 00000 /src/dovecot/src/lib-json/json-parser.c:543
420 469 9 :

['json_istream_set_error', 'json_istream_consumed_value_stream', 'i_panic', 'i_stream_have_bytes_left', 'i_stream_skip', 'i_stream_get_error', 'i_stream_seek', 'i_stream_get_name', 'i_stream_read_more']

420 469 json_istream_consume_value_stream call site: 00652 /src/dovecot/src/lib-json/json-istream.c:743
107 107 4 :

['json_tree_node_add', 'json_node_is_end', 'i_panic', 'json_node_is_singular.132']

107 1537 json_istream_read_tree call site: 00610 /src/dovecot/src/lib-json/json-istream.c:939
33 33 1 :

['i_stream_seek']

71 83 i_stream_read_memarea call site: 00701 /src/dovecot/src/lib/istream.c:344
16 16 2 :

['i_stream_get_name', 'i_stream_get_error']

16 692 json_parser_continue call site: 00774 /src/dovecot/src/lib-json/json-parser.c:2215
16 16 2 :

['i_stream_get_name', 'i_panic']

16 16 i_stream_default_snapshot call site: 00000 /src/dovecot/src/lib/istream.c:229
15 15 1 :

['random_open_urandom']

37 37 random_read call site: 00016 /src/dovecot/src/lib/randgen.c:88
12 2500 5 :

['json_parser_curchar', 'i_unreached', 'json_parser_parse_value', 'json_parser_shift', 'json_parser_skip_ws']

12 3852 json_parser_parse_text call site: 00000 /src/dovecot/src/lib-json/json-parser.c:2111
10 10 1 :

['i_stream_init_parent']

10 13 i_stream_create call site: 00594 /src/dovecot/src/lib/istream.c:1250
10 10 2 :

['i_unreached', 'i_panic']

10 10 json_istream_parse_list_close call site: 00000 /src/dovecot/src/lib-json/json-istream.c:307

Runtime coverage analysis

Covered functions
217
Functions that are reachable but not covered
218
Reachable functions
405
Percentage of reachable functions covered
46.17%
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
lib-json/fuzz-json-istream.c 1
lib-test/fuzzer.c 2
lib/lib.c 6
lib/failures.c 6
lib/randgen.c 4
lib/fd-util.c 2
lib/./lib.h 1
lib/data-stack.c 17
lib/./malloc-overflow.h 2
lib/bits.c 1
lib/./bits.h 1
lib/lib-event.c 20
lib/mempool-alloconly.c 2
lib/./mempool.h 6
lib/time-util.c 2
lib/strfuncs.c 6
lib/imem.c 2
lib/./array.h 10
lib/buffer.c 15
lib/mempool.c 1
lib/event-log.c 2
lib/event-filter.c 19
lib/wildcard-match.c 4
lib/printf-format-fix.c 5
lib/net.c 4
lib/backtrace-string.c 3
lib/str.c 7
lib/mempool-datastack.c 1
lib/./str.h 3
lib/./strfuncs.h 1
lib/hostpid.c 1
lib/var-expand.c 1
lib/lib-signals.c 15
lib/ioloop.c 19
lib/ioloop-notify-inotify.c 2
lib/ioloop-notify-fd.c 1
lib/istream.c 24
lib/ioloop-epoll.c 5
lib/array.c 3
lib/ioloop-iolist.c 2
lib/iostream.c 6
lib/memarea.c 2
lib-test/test-istream.c 1
lib-test/../../src/lib/malloc-overflow.h 1
lib-test/../../src/lib/mempool.h 1
lib-json/json-istream.c 13
lib-json/../../src/lib/malloc-overflow.h 1
lib-json/../../src/lib/mempool.h 4
lib-json/json-parser.c 14
lib-json/../../src/lib/array.h 5
lib-json/./json-types.h 2
lib-json/json-tree.c 9
lib-json/../../src/lib/lib.h 1
lib-json/../../src/lib/istream.h 2
lib/unichar.c 2
lib/./unichar.h 2
lib/iostream-pump.c 3
lib/ostream.c 3
lib/priorityq.c 7

Fuzzer: fuzz-smtp-server

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 1862 50.7%
gold [1:9] 117 3.18%
yellow [10:29] 16 0.43%
greenyellow [30:49] 9 0.24%
lawngreen 50+ 1668 45.4%
All colors 3672 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
2725 4854 3 :

['smtp_server_connection_input_lock', 'smtp_server_connection_ssl_init', 'smtp_server_connection_close']

4056 10788 smtp_server_connection_input call site: 00000 /src/dovecot/src/lib-smtp/smtp-server-connection.c:575
2500 4607 11 :

['pool_datastack_create', 'smtp_params_mail_parse_auth', 'smtp_params_mail_parse_body', 'smtp_params_mail_parse_ret', 't_str_ucase', 'smtp_params_mail_parse_size', 'smtp_param_parse', 'smtp_params_mail_parse_envid', 'smtp_params_mail_add_extra', 'strcmp', 'str_array_icase_find']

2500 4607 smtp_params_mail_parse call site: 02463 /src/dovecot/src/lib-smtp/smtp-params.c:562
2455 7911 28 :

['cmd_xclient_check_state', 'smtp_server_command_ref', 'connection_is_valid_dns_name', 'smtp_xtext_parse', 'pool_datastack_create', 'smtp_helo_domain_parse', 'array_is_created_i.2092', 'array_get_i.2091', 'net_str2port', 'p_strdup', 'smtp_server_connection_is_trusted', 'strcmp', 'strcasecmp', 'smtp_server_cmd_xclient_extra_field', 'p_malloc.2096', 'malloc_multiply_check.2094', 'str_begins_icase', 'smtp_server_command_input_lock', 'str_begins_builtin_success.2093', 'smtp_server_command_unref', 'smtp_server_command_add_hook', 'str_to_uint', 't_str_ucase', 'net_addr2ip', 'smtp_param_parse', 't_strsplit', 'strncasecmp', 'smtp_server_connection_set_state']

2455 21654 smtp_server_cmd_xclient call site: 03154 /src/dovecot/src/lib-smtp/smtp-server-cmd-xclient.c:101
2021 2021 2 :

['smtp_server_connection_handle_output_error', 'o_stream_get_disconnect_reason']

2695 4047 smtp_server_reply_send_real call site: 01579 /src/dovecot/src/lib-smtp/smtp-server-reply.c:638
1531 2447 7 :

['cmd_auth_check_state', 'smtp_server_command_add_hook', 'p_strdup', 'malloc_multiply_check.1824', 'p_malloc.1826', 't_strsplit', 'smtp_server_command_input_lock']

1531 5501 smtp_server_cmd_auth call site: 01323 /src/dovecot/src/lib-smtp/smtp-server-cmd-auth.c:195
1527 2233 2 :

['smtp_address_encode', 'smtp_server_reply_index']

1527 2233 smtp_server_recipient_replyv call site: 02834 /src/dovecot/src/lib-smtp/smtp-server-recipient.c:211
1409 1409 2 :

['event_reason_begin', 'event_reason_code']

1409 1409 smtp_server_connection_reason_begin call site: 02535 /src/dovecot/src/lib-smtp/smtp-server-connection.c:1668
1371 1371 4 :

['o_stream_get_error', 'writev', 'o_stream_lseek', 't_strdup']

1375 1375 o_stream_file_writev call site: 00000 /src/dovecot/src/lib/ostream-file.c:165
1327 1327 1 :

['smtp_server_connection_handle_output_error']

1327 1327 smtp_server_connection_flush call site: 01378 /src/dovecot/src/lib-smtp/smtp-server-connection.c:683
1141 2533 8 :

['pool_datastack_create', 'smtp_params_rcpt_add_extra', 'smtp_params_rcpt_parse_orcpt', 'smtp_params_rcpt_parse_notify', 't_str_ucase', 'smtp_param_parse', 'strcmp', 'str_array_icase_find']

1141 2533 smtp_params_rcpt_parse call site: 02628 /src/dovecot/src/lib-smtp/smtp-params.c:1147
985 985 2 :

['iostream_rawlog_create', 'stat']

985 985 smtp_server_connection_update_rawlog call site: 01402 /src/dovecot/src/lib-smtp/smtp-server-connection.c:150
772 772 1 :

['io_loop_notify_handler_deinit']

1512 2415 io_loop_destroy call site: 03636 /src/dovecot/src/lib/ioloop.c:875

Runtime coverage analysis

Covered functions
762
Functions that are reachable but not covered
432
Reachable functions
1059
Percentage of reachable functions covered
59.21%
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
lib-smtp/fuzz-smtp-server.c 2
lib-test/fuzzer.c 2
lib/lib.c 7
lib/failures.c 8
lib/randgen.c 4
lib/fd-util.c 4
lib/./lib.h 1
lib/data-stack.c 22
lib/./malloc-overflow.h 2
lib/bits.c 1
lib/./bits.h 1
lib/lib-event.c 43
lib/mempool-alloconly.c 2
lib/./mempool.h 7
lib/time-util.c 5
lib/strfuncs.c 35
lib/imem.c 3
lib/./array.h 12
lib/buffer.c 22
lib/mempool.c 2
lib/event-log.c 8
lib/event-filter.c 22
lib/wildcard-match.c 4
lib/printf-format-fix.c 5
lib/net.c 25
lib/backtrace-string.c 3
lib/str.c 9
lib/mempool-datastack.c 1
lib/./str.h 8
lib/./strfuncs.h 3
lib/hostpid.c 2
lib/var-expand.c 6
lib/lib-signals.c 15
lib/ioloop.c 52
lib/ioloop-notify-inotify.c 2
lib/ioloop-notify-fd.c 1
lib/istream.c 24
lib/ioloop-epoll.c 6
lib/array.c 6
lib/ioloop-iolist.c 2
lib/iostream.c 10
lib/memarea.c 2
lib/priorityq.c 12
lib-smtp/smtp-server.c 4
lib-smtp/../../src/lib/malloc-overflow.h 2
lib-smtp/../../src/lib/mempool.h 3
lib-ssl-iostream/iostream-ssl.c 14
lib-ssl-iostream/../../src/lib/malloc-overflow.h 1
lib-ssl-iostream/../../src/lib/mempool.h 2
lib/./lib-event-private.h 1
lib-smtp/./smtp-common.h 1
lib-smtp/smtp-server-connection.c 52
lib/connection.c 23
lib-smtp/smtp-server-command.c 29
lib-smtp/../../src/lib/array.h 9
lib-smtp/smtp-server-cmd-helo.c 7
lib-smtp/smtp-server-reply.c 24
lib-smtp/../../src/lib/str.h 6
lib/ostream.c 29
lib-smtp/smtp-server-transaction.c 10
lib-smtp/smtp-server-recipient.c 16
lib-smtp/smtp-address.c 16
lib-smtp/./smtp-address.h 2
lib-smtp/./smtp-parser.h 7
lib-smtp/smtp-params.c 27
lib/str-sanitize.c 4
lib/unichar.c 3
lib/./unichar.h 2
lib-smtp/smtp-command-parser.c 7
lib/safe-memset.c 1
lib/./buffer.h 1
lib-smtp/./smtp-server-private.h 1
lib-smtp/smtp-reply-parser.c 1
lib-smtp/smtp-reply.c 4
lib-smtp/./smtp-reply.h 1
lib-smtp/smtp-syntax.c 4
lib-smtp/smtp-parser.c 12
lib/strnum.c 10
lib-smtp/smtp-server-cmd-auth.c 4
lib-smtp/smtp-server-cmd-starttls.c 5
lib/iostream-rawlog.c 5
lib/istream-rawlog.c 2
lib/ostream-file.c 5
lib/ostream-rawlog.c 2
lib/./time-util.h 3
lib-smtp/../../src/lib/ostream.h 1
lib-ssl-iostream/iostream-ssl-context-cache.c 4
lib/hash.c 18
lib/primes.c 1
lib/module-dir.c 24
lib-master/master-service-ssl.c 1
lib-settings/settings.c 13
lib-settings/settings-parser.c 28
lib-settings/../../src/lib/str.h 5
lib-settings/../../src/lib/malloc-overflow.h 1
lib-settings/../../src/lib/mempool.h 4
lib-settings/../../src/lib/lib.h 1
lib/str-parse.c 5
lib-settings/../../src/lib/array.h 8
lib-settings/../../src/lib/byteorder.h 2
lib-settings/../../src/lib/strfuncs.h 1
lib-master/../../src/lib/mempool.h 1
lib-smtp/smtp-server-cmd-mail.c 5
lib-smtp/../../src/lib/strfuncs.h 1
lib-smtp/../../src/lib/lib.h 1
lib-smtp/smtp-server-cmd-rcpt.c 7
lib-mail/message-address.c 16
lib-mail/rfc822-parser.c 10
lib-mail/../../src/lib/str.h 5
lib-mail/../../src/lib/malloc-overflow.h 1
lib-mail/../../src/lib/mempool.h 1
lib-mail/../../src/lib/lib.h 1
lib-mail/./rfc822-parser.h 1
lib-smtp/smtp-server-cmd-data.c 21
lib-mail/istream-dot.c 1
lib/istream-failure-at.c 1
lib/istream-chain.c 4
lib/istream-limit.c 1
lib/istream-sized.c 3
lib-smtp/smtp-server-cmd-rset.c 3
lib-smtp/smtp-server-cmd-vrfy.c 2
lib-smtp/smtp-server-cmd-noop.c 2
lib-smtp/smtp-server-cmd-quit.c 1
lib-smtp/smtp-server-cmd-xclient.c 5
lib-smtp/./smtp-command.h 1
lib/guid.c 2
lib/sha1.c 6
lib-smtp/../../src/lib/base64.h 3
lib/base64.c 4
lib/istream-unix.c 1
lib/istream-file.c 2
lib/ostream-unix.c 1
lib/sleep.c 2
lib/iostream-pump.c 3

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
master_service_init /src/dovecot/src/lib-master/master-service.c 5 ['N/A', 'int', 'N/A', 'N/A', 'N/A'] 27 0 755 129 39 668 0 2896 763
master_getopt_long /src/dovecot/src/lib-master/master-service.c 2 ['N/A', 'N/A'] 22 0 131 23 6 463 0 1903 463
master_service_init_finish /src/dovecot/src/lib-master/master-service.c 1 ['N/A'] 35 0 263 47 15 641 0 2922 376
parse_next_mime_header_init /src/dovecot/src/lib-mail/message-parser.c 2 ['N/A', 'N/A'] 20 0 29 3 2 235 0 1140 281
smtp_server_connection_input /src/dovecot/src/lib-smtp/smtp-server-connection.c 1 ['N/A'] 39 0 247 40 14 669 0 3048 179
restrict_access_by_env /src/dovecot/src/lib/restrict-access.c 2 ['int', 'N/A'] 30 0 55 9 4 215 0 889 144
o_stream_file_send_istream /src/dovecot/src/lib/ostream-file.c 2 ['N/A', 'N/A'] 32 0 156 23 10 232 0 995 142

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

Functions statically reachable by fuzzers
54.0%
1548 / 2853
Cyclomatic complexity statically reachable by fuzzers
60.0%
8408 / 13901

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 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.

lib-imap/fuzz-imap-utf7.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=['lib_signals_init', 'iostream_pump_destroy', 'i_snprintf', 'printf_format_fix_noalloc', 'event_want_log_level', 't_malloc_real', 'buffer_check_append_limits', 'str_vprintfa', 'random_read']

lib-imap/fuzz-imap-bodystructure.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=['iostream_pump_destroy', 'io_stream_free', 'i_snprintf', 'lib_signals_init', 'p_strdup_vprintf', 'event_want_log_level', 't_malloc_real', 'str_vprintfa', 'imap_parser_read_literal', 'printf_format_fix_noalloc']

lib-mail/fuzz-message-parser.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=['iostream_pump_destroy', 'i_snprintf', 'i_stream_snapshot_free', 'lib_signals_init', 'buffer_set_used_size', 'p_strdup_vprintf', 'buffer_delete', 'event_want_log_level', 't_malloc_real', 'printf_format_fix_noalloc']

lib-json/fuzz-json-istream.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=['iostream_pump_destroy', 'i_stream_snapshot_free', 'i_snprintf', 'buffer_check_limits', 'buffer_set_used_size', 'p_strdup_vprintf', 'lib_signals_init', 't_malloc_no0', 'json_tree_unref', 'json_tree_node_add_value']

lib-smtp/fuzz-smtp-server.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=['t_memdup', 'array_get_i', 'str_truncate', 'p_strdup_until', 'smtp_server_cmd_xclient', 'array_sort_i', 'smtp_server_connection_output', 'i_snprintf', 'smtp_server_cmd_mail']

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/dovecot/src/lib/base64.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/lib.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/event-filter-lexer.l [] []
/src/dovecot/src/lib-imap/fuzz-imap-bodystructure.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib-smtp/smtp-params.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-master/master-service.c [] []
/src/dovecot/src/lib/time-util.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-smtp-server']
/src/dovecot/src/lib/pkcs5.c [] []
/src/dovecot/src/lib-mail/message-parser.c ['fuzz-message-parser'] ['fuzz-message-parser']
/src/dovecot/src/lib-smtp/./smtp-syntax.h [] []
/src/dovecot/src/lib-master/master-service-ssl.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/./str.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/./istream.h [] []
/src/dovecot/src/lib/istream-concat.c [] []
/src/dovecot/src/lib-mail/../../src/lib/strfuncs.h [] []
/src/dovecot/src/lib/unichar.c ['fuzz-imap-utf7', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-smtp/./smtp-command.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/./bits.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/safe-mkstemp.c [] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-starttls.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-command.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/event-filter.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-mail/message-address.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-master/syslog-util.c [] []
/src/dovecot/src/lib/file-dotlock.c [] []
/src/dovecot/src/lib/priorityq.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/ioloop-iolist.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-master/../../src/lib/ostream.h [] []
/src/dovecot/src/lib/ostream-unix.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/./time-util.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/mempool-system.c [] []
/src/dovecot/src/lib/./mempool.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/backtrace-string.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-parser.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/sha1.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/./strfuncs.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/failures.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/path-util.c [] []
/src/dovecot/src/lib/istream-rawlog.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/strnum.c ['fuzz-imap-bodystructure', 'fuzz-smtp-server'] ['fuzz-imap-bodystructure', 'fuzz-smtp-server']
/src/dovecot/src/lib/md4.c [] []
/src/dovecot/src/lib-settings/../../src/lib/byteorder.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-master/master-instance.c [] []
/src/dovecot/src/lib/mempool-alloconly.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/env-util.c [] []
/src/dovecot/src/lib/printf-format-fix.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-imap/imap-arg.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib-json/json-tree.c ['fuzz-json-istream'] ['fuzz-json-istream']
/src/dovecot/src/lib/restrict-access.c [] []
/src/dovecot/src/lib-mail/fuzz-message-parser.c ['fuzz-message-parser'] ['fuzz-message-parser']
/src/dovecot/src/lib/lib-event.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/event-filter-parser.y [] []
/src/dovecot/src/lib-imap/../../src/lib/mempool.h ['fuzz-imap-bodystructure'] []
/src/dovecot/src/lib/str-parse.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/ioloop-epoll.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/module-dir.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-mail/rfc2231-parser.c [] []
/src/dovecot/src/lib/istream-file.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/utc-mktime.c [] []
/src/dovecot/src/lib/event-filter-lexer.c [] []
/src/dovecot/src/lib-smtp/fuzz-smtp-server.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/punycode.c [] []
/src/dovecot/src/lib/home-expand.c [] []
/src/dovecot/src/lib-ssl-iostream/iostream-ssl-context-cache.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/sleep.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/str.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/cpu-count.c [] []
/src/dovecot/src/lib-mail/message-header-parser.c ['fuzz-message-parser'] ['fuzz-message-parser']
/src/dovecot/src/lib-smtp/smtp-command-parser.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/primes.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/./base64.h [] []
/src/dovecot/src/lib-imap/imap-bodystructure.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib-smtp/smtp-server-cmd-rcpt.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/./smtp-parser.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/rand.c [] []
/src/dovecot/src/lib-smtp/smtp-server.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-json/./json-tree.h [] []
/src/dovecot/src/lib/istream-unix.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-imap/imap-parser.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/mmap-util.c [] []
/src/dovecot/src/lib-smtp/smtp-server-transaction.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/../../src/lib/str.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/iostream.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/utc-offset.c [] []
/src/dovecot/src/lib/ostream.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-imap/imap-utf7.c ['fuzz-imap-utf7'] ['fuzz-imap-utf7']
/src/dovecot/src/lib/mempool.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/fdpass.c [] []
/src/dovecot/src/lib-json/../../src/lib/unichar.h [] []
/src/dovecot/src/lib-smtp/./smtp-server-private.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/istream-limit.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-json/fuzz-json-istream.c ['fuzz-json-istream'] ['fuzz-json-istream']
/src/dovecot/src/lib/istream-seekable.c [] []
/src/dovecot/src/lib-master/../../src/lib/guid.h [] []
/src/dovecot/src/lib/sendfile-util.c [] []
/src/dovecot/src/lib/ioloop.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-cmd-mail.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/process-title.c [] []
/src/dovecot/src/lib/./var-expand.h [] []
/src/dovecot/src/lib/./malloc-overflow.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/bits.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/wildcard-match.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-vrfy.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-test/fuzzer.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/write-full.c [] []
/src/dovecot/src/lib/sha3.c [] []
/src/dovecot/src/lib-mail/message-part.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/hex-binary.c [] []
/src/dovecot/src/lib-json/json-parser.c ['fuzz-json-istream'] ['fuzz-json-istream']
/src/dovecot/src/lib/./array.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/nfs-workarounds.c [] []
/src/dovecot/src/lib-mail/rfc822-parser.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/istream.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/buffer.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-imap/fuzz-imap-utf7.c ['fuzz-imap-utf7'] ['fuzz-imap-utf7']
/src/dovecot/src/lib/hostpid.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/eacces-error.c [] []
/src/dovecot/src/lib-smtp/smtp-syntax.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/./smtp-address.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-master/master-service-ssl-settings.c [] []
/src/dovecot/src/lib/istream-chain.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/md5.c [] []
/src/dovecot/src/lib/read-full.c [] []
/src/dovecot/src/lib/strescape.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/./lib-event-private.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-mail/istream-dot.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-cmd-helo.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/mempool-unsafe-datastack.c [] []
/src/dovecot/src/lib/file-lock.c [] []
/src/dovecot/src/lib/istream-sized.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-mail/message-date.c [] []
/src/dovecot/src/lib-master/stats-client.c [] []
/src/dovecot/src/lib/./strescape.h [] []
/src/dovecot/src/lib-mail/message-size.c ['fuzz-message-parser'] ['fuzz-message-parser']
/src/dovecot/src/lib-master/master-admin-client.c [] []
/src/dovecot/src/lib-settings/settings-parser.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/array.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/iostream-rawlog.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-auth.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/str-sanitize.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-test/test-istream.c ['fuzz-message-parser', 'fuzz-json-istream'] ['fuzz-message-parser', 'fuzz-json-istream']
/src/dovecot/src/lib/./buffer.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/./smtp-common.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-mail/./rfc822-parser.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib/ostream-rawlog.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-reply-parser.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-address.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/./lib.h ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-data.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-reply.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/hash.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib/istream-failure-at.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-reply.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-imap/imap-quote.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/var-expand.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-cmd-xclient.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-json/./json-syntax.h [] []
/src/dovecot/src/lib-smtp/./smtp-params.h [] []
/src/dovecot/src/lib/ostream-buffer.c [] []
/src/dovecot/src/lib-smtp/smtp-server-connection.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/ipwd.c [] []
/src/dovecot/src/lib-smtp/smtp-common.c [] []
/src/dovecot/src/lib/hash-method.c [] []
/src/dovecot/src/lib/safe-memset.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-ssl-iostream/iostream-ssl.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-smtp/smtp-server-cmd-rset.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-settings/settings.c ['fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-quit.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/mempool-datastack.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-smtp-server']
/src/dovecot/src/lib/istream-data.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/memarea.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/guid.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/event-log.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-smtp-server']
/src/dovecot/src/lib-imap/imap-envelope.c ['fuzz-imap-bodystructure'] ['fuzz-imap-bodystructure']
/src/dovecot/src/lib/net.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib-master/../../src/lib/byteorder.h [] []
/src/dovecot/src/lib/imem.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/hmac.c [] []
/src/dovecot/src/lib/iostream-pump.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/connection.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/fd-util.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/lib-signals.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/event-filter-parser.c [] []
/src/dovecot/src/lib/ostream-file.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/./unichar.h ['fuzz-imap-utf7', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-cmd-noop.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/./hmac.h [] []
/src/dovecot/src/lib/var-expand-if.c [] []
/src/dovecot/src/lib-json/./json-types.h ['fuzz-json-istream'] []
/src/dovecot/src/lib/strfuncs.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-smtp/./smtp-reply.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-json/json-istream.c ['fuzz-json-istream'] ['fuzz-json-istream']
/src/dovecot/src/lib/sha2.c [] []
/src/dovecot/src/lib-settings/../../src/lib/array.h ['fuzz-smtp-server'] []
/src/dovecot/src/lib-smtp/smtp-server-recipient.c ['fuzz-smtp-server'] ['fuzz-smtp-server']
/src/dovecot/src/lib/ioloop-notify-inotify.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []
/src/dovecot/src/lib/randgen.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib/data-stack.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server']
/src/dovecot/src/lib-master/master-service-haproxy.c [] []
/src/dovecot/src/lib/ioloop-notify-fd.c ['fuzz-imap-utf7', 'fuzz-imap-bodystructure', 'fuzz-message-parser', 'fuzz-json-istream', 'fuzz-smtp-server'] []

Directories in report

Directory
/src/dovecot/src/lib-json/
/src/dovecot/src/lib-master/../../src/lib/
/src/dovecot/src/lib-mail/../../src/lib/
/src/dovecot/src/lib/
/src/dovecot/src/lib-mail/./
/src/dovecot/src/lib-json/../../src/lib/
/src/dovecot/src/lib-imap/
/src/dovecot/src/lib-smtp/
/src/dovecot/src/lib-ssl-iostream/
/src/dovecot/src/lib-imap/../../src/lib/
/src/dovecot/src/lib-smtp/../../src/lib/
/src/dovecot/src/lib-json/./
/src/dovecot/src/lib/./
/src/dovecot/src/lib-test/
/src/dovecot/src/lib-mail/
/src/dovecot/src/lib-smtp/./
/src/dovecot/src/lib-master/
/src/dovecot/src/lib-settings/../../src/lib/
/src/dovecot/src/lib-settings/