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

Fuzzer details

Fuzzer: h2o-fuzzer-url

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 1 5.26%
gold [1:9] 0 0.0%
yellow [10:29] 2 10.5%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 16 84.2%
All colors 19 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
2 2 1 :

['strlen']

2 44 h2o_url_parse call site: 00001 /src/h2o/lib/common/url.c:252

Runtime coverage analysis

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

Files reached

filename functions hit
fuzz/driver_url.cc 1
lib/common/url.c 4
include/h2o/memory.h 1
lib/common/string.c 1

Fuzzer: h2o-fuzzer-http1

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 3312 72.4%
gold [1:9] 188 4.11%
yellow [10:29] 20 0.43%
greenyellow [30:49] 20 0.43%
lawngreen 50+ 1034 22.6%
All colors 4574 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
1277 1277 5 :

['h2o_memis.6845', 'on_connect_error', 'memcmp', 'h2o_httpclient__h2_on_connect', 'h2o_socketpool_detach']

1277 1720 on_pool_connect call site: 01662 /src/h2o/lib/common/httpclient.c:131
521 521 1 :

['shutdown_ssl']

521 521 h2o_socket_close call site: 00694 /src/h2o/lib/common/socket.c:637
407 457 6 :

['generate_tls_records', 'zerocopy_buffers_push', 'h2o_mem_free_recycle', 'flatten_sendvec', 'h2o_iovec_init', 'dispose_ssl_output_buffer']

407 493 write_core call site: 00793 /src/h2o/lib/common/socket/evloop.c.h:206
96 105 4 :

['h2o__fatal', 'shutdown', 'change_epoll_mode', 'handle_zerocopy_notification']

102 111 evloop_do_on_socket_close call site: 00740 /src/h2o/lib/common/socket/evloop/epoll.c.h:285
46 46 2 :

['h2o_iovec_init.2065', 'h2o_get_compressible_types']

46 487 create_generator call site: 03485 /src/h2o/lib/handler/file.c:292
23 23 1 :

['do_send_from_pipe']

23 23 do_proceed call site: 00999 /src/h2o/lib/core/proxy.c:444
22 22 3 :

['h2o_hostinfo_aton', 'h2o_url_get_port', '__bswap_16.392']

22 22 detect_target_type call site: 00221 /src/h2o/lib/common/socketpool.c:154
21 21 1 :

['prepare_for_latency_optimized_write']

21 21 h2o_socket_do_prepare_for_latency_optimized_write call site: 02027 /src/h2o/lib/common/socket.c:790
19 19 1 :

['init_write_buf']

19 21 do_write call site: 00856 /src/h2o/lib/common/socket/evloop.c.h:422
14 14 3 :

['h2o__fatal', 'h2o_strerror_r', '__errno_location']

14 14 init_async call site: 03721 /src/h2o/lib/common/multithread.c:104
11 11 1 :

['encode_as_is']

11 20 do_encode_header call site: 02202 /src/h2o/lib/http2/hpack.c:807
11 11 1 :

['encode_as_is']

11 11 do_encode_header call site: 02205 /src/h2o/lib/http2/hpack.c:820

Runtime coverage analysis

Covered functions
559
Functions that are reachable but not covered
783
Reachable functions
1221
Percentage of reachable functions covered
35.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
fuzz/driver.cc 8
lib/common/multithread.c 10
/usr/include/stdlib.h 1
lib/core/config.c 7
include/h2o/memory.h 23
lib/common/memory.c 23
include/h2o/linklist.h 6
lib/handler/mimemap.c 23
include/h2o/string_.h 4
deps/klib/khash.h 1
lib/common/socketpool.c 29
lib/core/configurator.c 6
lib/common/string.c 16
fuzz/driver_common.cc 4
lib/core/headers.c 8
lib/core/request.c 45
include/h2o.h 31
lib/common/socket.c 68
lib/common/url.c 13
lib/common/hostinfo.c 10
include/h2o/url.h 4
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
lib/common/balancer/roundrobin.c 1
include/h2o/socketpool.h 1
lib/handler/proxy.c 7
include/h2o/timerwheel.h 3
include/h2o/socket/evloop.h 5
lib/common/timerwheel.c 8
lib/common/httpclient.c 13
deps/picotls/lib/openssl.c 1
deps/quicly/lib/quicly.c 127
deps/quicly/lib/defaults.c 4
deps/picotls/lib/picotls.c 106
deps/picotls/include/picotls.h 10
deps/quicly/include/quicly/frame.h 24
lib/common/socket/evloop.c.h 32
lib/http3/server.c 1
lib/http3/common.c 24
include/h2o/http3_internal.h 12
/usr/include/x86_64-linux-gnu/bits/socket.h 1
deps/quicly/include/quicly.h 12
include/h2o/multithread.h 1
deps/quicly/include/quicly/cid.h 2
deps/quicly/lib/loss.c 2
deps/quicly/include/quicly/sentmap.h 6
deps/quicly/include/quicly/loss.h 7
deps/quicly/lib/sentmap.c 9
deps/quicly/lib/rate.c 4
quicly-tracer.h 12
deps/quicly/lib/sendstate.c 6
deps/quicly/include/quicly/ranges.h 2
deps/quicly/lib/recvstate.c 3
deps/quicly/include/quicly/linklist.h 4
deps/quicly/include/quicly/maxsender.h 4
deps/quicly/lib/ranges.c 6
lib/common/http3client.c 22
lib/common/socket/evloop/epoll.c.h 7
deps/picotls/include/picotls/../picotls.h 5
lib/core/util.c 10
lib/core/context.c 10
lib/common/time.c 8
lib/core/proxy.c 20
deps/cloexec/cloexec.c 1
lib/common/file.c 1
deps/picotls/lib/hpke.c 8
lib/common/../../deps/ssl-conservatory/openssl/openssl_hostname_validation.c 7
/usr/include/openssl/x509v3.h 3
lib/common/cache.c 12
include/h2o/hostinfo.h 1
lib/common/http1client.c 26
include/h2o/socket.h 5
deps/picohttpparser/picohttpparser.c 11
lib/common/token_table.h 6
include/h2o/httpclient.h 1
lib/common/http2client.c 49
lib/http2/hpack.c 32
lib/common/token.c 1
lib/http2/frame.c 8
include/h2o/http2_common.h 10
deps/quicly/lib/frame.c 3
deps/quicly/include/quicly/sendstate.h 2
deps/quicly/include/quicly/local_cid.h 1
deps/quicly/lib/local_cid.c 4
deps/quicly/include/quicly/retire_cid.h 1
deps/quicly/lib/retire_cid.c 2
lib/http3/qpack.c 38
deps/quicly/lib/cc-reno.c 1
deps/quicly/lib/remote_cid.c 1
deps/quicly/lib/streambuf.c 3
deps/quicly/include/quicly/streambuf.h 2
deps/quicly/include/quicly/recvstate.h 1
include/h2o/http3_common.h 1
lib/handler/headers_util.c 7
lib/handler/access_log.c 3
lib/core/logconf.c 5
include/h2o/time_.h 1
lib/handler/file.c 21
lib/common/filecache.c 12
/usr/include/x86_64-linux-gnu/sys/stat.h 2
lib/handler/file/templates.c.h 2
lib/common/rand.c 1
lib/handler/compress/gzip.c 9
lib/handler/compress.c 1
lib/http1.c 43
lib/http2/connection.c 35
include/h2o/http2_internal.h 15
lib/http2/scheduler.c 22
lib/http2/stream.c 13
include/h2o/http2_scheduler.h 3
lib/http2/casper.c 5
lib/http2/cache_digests.c 7
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h 1
deps/golombset/golombset.h 4
lib/common/absprio.c 1
include/h2o/absprio.h 1

Fuzzer: h2o-fuzzer-http2

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 3127 75.1%
gold [1:9] 193 4.63%
yellow [10:29] 18 0.43%
greenyellow [30:49] 16 0.38%
lawngreen 50+ 806 19.3%
All colors 4160 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
1277 1277 5 :

['h2o_memis.6845', 'on_connect_error', 'memcmp', 'h2o_httpclient__h2_on_connect', 'h2o_socketpool_detach']

1277 1720 on_pool_connect call site: 01662 /src/h2o/lib/common/httpclient.c:131
521 521 1 :

['shutdown_ssl']

521 521 h2o_socket_close call site: 00694 /src/h2o/lib/common/socket.c:637
407 457 6 :

['generate_tls_records', 'zerocopy_buffers_push', 'h2o_mem_free_recycle', 'flatten_sendvec', 'h2o_iovec_init', 'dispose_ssl_output_buffer']

407 493 write_core call site: 00793 /src/h2o/lib/common/socket/evloop.c.h:206
267 267 1 :

['h2o_send_error_502']

267 267 h2o_reprocess_request call site: 00917 /src/h2o/lib/core/request.c:443
96 105 4 :

['h2o__fatal', 'shutdown', 'change_epoll_mode', 'handle_zerocopy_notification']

102 111 evloop_do_on_socket_close call site: 00740 /src/h2o/lib/common/socket/evloop/epoll.c.h:285
46 46 2 :

['h2o_iovec_init.2065', 'h2o_get_compressible_types']

46 487 create_generator call site: 03485 /src/h2o/lib/handler/file.c:292
23 23 1 :

['do_send_from_pipe']

23 23 do_proceed call site: 00999 /src/h2o/lib/core/proxy.c:444
22 22 3 :

['h2o_hostinfo_aton', 'h2o_url_get_port', '__bswap_16.392']

22 22 detect_target_type call site: 00221 /src/h2o/lib/common/socketpool.c:154
21 21 1 :

['prepare_for_latency_optimized_write']

21 21 h2o_socket_do_prepare_for_latency_optimized_write call site: 02027 /src/h2o/lib/common/socket.c:790
19 19 1 :

['init_write_buf']

19 21 do_write call site: 00856 /src/h2o/lib/common/socket/evloop.c.h:422
14 14 3 :

['h2o__fatal', 'h2o_strerror_r', '__errno_location']

14 14 init_async call site: 03721 /src/h2o/lib/common/multithread.c:104
11 11 1 :

['encode_as_is']

11 20 do_encode_header call site: 02202 /src/h2o/lib/http2/hpack.c:807

Runtime coverage analysis

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

Files reached

filename functions hit
fuzz/driver.cc 8
lib/common/multithread.c 10
/usr/include/stdlib.h 1
lib/core/config.c 7
include/h2o/memory.h 23
lib/common/memory.c 22
include/h2o/linklist.h 6
lib/handler/mimemap.c 23
include/h2o/string_.h 4
deps/klib/khash.h 1
lib/common/socketpool.c 29
lib/core/configurator.c 6
lib/common/string.c 13
fuzz/driver_common.cc 4
lib/core/headers.c 8
lib/core/request.c 37
include/h2o.h 29
lib/common/socket.c 67
lib/common/url.c 13
lib/common/hostinfo.c 10
include/h2o/url.h 4
/usr/include/x86_64-linux-gnu/bits/byteswap.h 2
lib/common/balancer/roundrobin.c 1
include/h2o/socketpool.h 1
lib/handler/proxy.c 7
include/h2o/timerwheel.h 3
include/h2o/socket/evloop.h 5
lib/common/timerwheel.c 8
lib/common/httpclient.c 13
deps/picotls/lib/openssl.c 1
deps/quicly/lib/quicly.c 127
deps/quicly/lib/defaults.c 4
deps/picotls/lib/picotls.c 106
deps/picotls/include/picotls.h 10
deps/quicly/include/quicly/frame.h 24
lib/common/socket/evloop.c.h 31
lib/http3/server.c 1
lib/http3/common.c 24
include/h2o/http3_internal.h 12
/usr/include/x86_64-linux-gnu/bits/socket.h 1
deps/quicly/include/quicly.h 12
include/h2o/multithread.h 1
deps/quicly/include/quicly/cid.h 2
deps/quicly/lib/loss.c 2
deps/quicly/include/quicly/sentmap.h 6
deps/quicly/include/quicly/loss.h 7
deps/quicly/lib/sentmap.c 9
deps/quicly/lib/rate.c 4
quicly-tracer.h 12
deps/quicly/lib/sendstate.c 6
deps/quicly/include/quicly/ranges.h 2
deps/quicly/lib/recvstate.c 3
deps/quicly/include/quicly/linklist.h 4
deps/quicly/include/quicly/maxsender.h 4
deps/quicly/lib/ranges.c 6
lib/common/http3client.c 22
lib/common/socket/evloop/epoll.c.h 7
deps/picotls/include/picotls/../picotls.h 5
lib/core/util.c 9
lib/core/context.c 10
lib/common/time.c 8
lib/core/proxy.c 20
deps/cloexec/cloexec.c 1
lib/common/file.c 1
deps/picotls/lib/hpke.c 8
lib/common/../../deps/ssl-conservatory/openssl/openssl_hostname_validation.c 7
/usr/include/openssl/x509v3.h 3
lib/common/cache.c 12
include/h2o/hostinfo.h 1
lib/common/http1client.c 26
include/h2o/socket.h 5
deps/picohttpparser/picohttpparser.c 7
lib/common/token_table.h 6
include/h2o/httpclient.h 1
lib/common/http2client.c 49
lib/http2/hpack.c 28
lib/common/token.c 1
lib/http2/frame.c 8
include/h2o/http2_common.h 10
deps/quicly/lib/frame.c 3
deps/quicly/include/quicly/sendstate.h 2
deps/quicly/include/quicly/local_cid.h 1
deps/quicly/lib/local_cid.c 4
deps/quicly/include/quicly/retire_cid.h 1
deps/quicly/lib/retire_cid.c 2
lib/http3/qpack.c 38
deps/quicly/lib/cc-reno.c 1
deps/quicly/lib/remote_cid.c 1
deps/quicly/lib/streambuf.c 3
deps/quicly/include/quicly/streambuf.h 2
deps/quicly/include/quicly/recvstate.h 1
include/h2o/http3_common.h 1
lib/handler/headers_util.c 7
lib/handler/access_log.c 3
lib/core/logconf.c 5
include/h2o/time_.h 1
lib/handler/file.c 21
lib/common/filecache.c 12
/usr/include/x86_64-linux-gnu/sys/stat.h 2
lib/handler/file/templates.c.h 2
lib/common/rand.c 1
lib/handler/compress/gzip.c 9
lib/handler/compress.c 1
lib/http2/connection.c 27
include/h2o/http2_internal.h 10
lib/http2/scheduler.c 19
lib/http2/stream.c 7
include/h2o/http2_scheduler.h 2
lib/http2/casper.c 1
lib/http2/cache_digests.c 3

Fuzzer: h2o-fuzzer-http3

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 2456 72.0%
gold [1:9] 198 5.80%
yellow [10:29] 28 0.82%
greenyellow [30:49] 3 0.08%
lawngreen 50+ 723 21.2%
All colors 3408 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
1277 1277 5 :

['h2o_memis.6845', 'on_connect_error', 'memcmp', 'h2o_httpclient__h2_on_connect', 'h2o_socketpool_detach']

1277 1720 on_pool_connect call site: 01627 /src/h2o/lib/common/httpclient.c:131
521 521 1 :

['shutdown_ssl']

521 521 h2o_socket_close call site: 00670 /src/h2o/lib/common/socket.c:637
407 457 6 :

['generate_tls_records', 'zerocopy_buffers_push', 'h2o_mem_free_recycle', 'flatten_sendvec', 'h2o_iovec_init', 'dispose_ssl_output_buffer']

407 493 write_core call site: 00767 /src/h2o/lib/common/socket/evloop.c.h:206
267 267 1 :

['h2o_send_error_502']

267 267 h2o_reprocess_request call site: 00888 /src/h2o/lib/core/request.c:443
96 105 4 :

['h2o__fatal', 'shutdown', 'change_epoll_mode', 'handle_zerocopy_notification']

102 111 evloop_do_on_socket_close call site: 00716 /src/h2o/lib/common/socket/evloop/epoll.c.h:285
49 76 3 :

['decoder_link_blocked', 'qpack_table_total_inserts', 'decode_int']

49 76 parse_decode_context call site: 02444 /src/h2o/lib/http3/qpack.c:775
46 46 2 :

['h2o_iovec_init.2065', 'h2o_get_compressible_types']

46 487 create_generator call site: 02884 /src/h2o/lib/handler/file.c:292
29 29 1 :

['check_run_blocked']

32 41 pre_dispose_request call site: 03224 /src/h2o/lib/http3/server.c:434
23 23 1 :

['do_send_from_pipe']

23 23 do_proceed call site: 00980 /src/h2o/lib/core/proxy.c:444
22 22 3 :

['h2o_hostinfo_aton', 'h2o_url_get_port', '__bswap_16.392']

22 22 detect_target_type call site: 00455 /src/h2o/lib/common/socketpool.c:154
14 14 3 :

['h2o__fatal', 'h2o_strerror_r', '__errno_location']

14 14 init_async call site: 03120 /src/h2o/lib/common/multithread.c:104
10 10 2 :

['h2o__fatal', 'posix_memalign']

10 10 h2o_mem_aligned_alloc call site: 00030 /src/h2o/include/h2o/memory.h:449

Runtime coverage analysis

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

Files reached

filename functions hit
fuzz/driver_h3.cc 3
lib/common/multithread.c 9
/usr/include/stdlib.h 1
lib/handler/access_log.c 6
lib/core/logconf.c 9
include/h2o/memory.h 22
lib/common/memory.c 22
lib/common/string.c 13
include/h2o/string_.h 4
lib/common/token_table.h 6
lib/common/serverutil.c 2
/usr/include/x86_64-linux-gnu/sys/stat.h 2
lib/core/config.c 7
include/h2o/linklist.h 6
lib/handler/mimemap.c 23
deps/klib/khash.h 1
lib/common/socketpool.c 29
lib/core/configurator.c 6
fuzz/driver_common.cc 3
lib/common/url.c 13
lib/common/hostinfo.c 10
include/h2o/url.h 4
/usr/include/x86_64-linux-gnu/bits/byteswap.h 3
lib/common/balancer/roundrobin.c 1
include/h2o/socketpool.h 1
lib/handler/proxy.c 7
include/h2o/timerwheel.h 3
include/h2o/socket/evloop.h 5
lib/common/timerwheel.c 9
lib/common/httpclient.c 13
include/h2o.h 29
deps/picotls/lib/openssl.c 1
fuzz/quicly_mock.c 33
deps/quicly/lib/defaults.c 4
deps/picotls/lib/picotls.c 100
deps/picotls/include/picotls.h 8
deps/quicly/include/quicly/frame.h 4
lib/common/socket/evloop.c.h 32
lib/http3/server.c 20
lib/http3/common.c 25
include/h2o/http3_internal.h 14
lib/common/socket.c 66
/usr/include/x86_64-linux-gnu/bits/socket.h 1
deps/quicly/include/quicly.h 12
include/h2o/multithread.h 1
lib/common/http3client.c 22
lib/common/socket/evloop/epoll.c.h 8
deps/picotls/include/picotls/../picotls.h 5
lib/core/util.c 6
lib/core/request.c 37
lib/core/context.c 9
lib/common/time.c 8
lib/core/headers.c 8
lib/core/proxy.c 20
deps/cloexec/cloexec.c 1
lib/common/file.c 1
deps/picotls/lib/hpke.c 8
lib/common/../../deps/ssl-conservatory/openssl/openssl_hostname_validation.c 7
/usr/include/openssl/x509v3.h 3
lib/common/cache.c 12
include/h2o/hostinfo.h 1
lib/common/http1client.c 26
include/h2o/socket.h 5
deps/picohttpparser/picohttpparser.c 7
include/h2o/httpclient.h 1
lib/common/http2client.c 49
lib/http2/hpack.c 27
lib/common/token.c 1
lib/http2/frame.c 7
include/h2o/http2_common.h 10
lib/http3/qpack.c 38
deps/quicly/lib/sendstate.c 8
deps/quicly/include/quicly/ranges.h 2
deps/quicly/lib/recvstate.c 4
deps/quicly/lib/ranges.c 6
deps/quicly/include/quicly/sendstate.h 2
deps/quicly/include/quicly/recvstate.h 2
include/h2o/http3_common.h 1
lib/handler/headers_util.c 7
include/h2o/time_.h 1
lib/handler/file.c 21
lib/common/filecache.c 12
lib/handler/file/templates.c.h 2
lib/common/rand.c 1
lib/handler/compress/gzip.c 9
lib/handler/compress.c 1

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

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

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
ptls_init_compressed_certificate /src/h2o/deps/picotls/lib/certificate_compression.c 5 ['struct.st_ptls_emit_compressed_certificate_t *', 'struct.st_h2o_iovec_t *', 'size_t ', 'char *', 'size_t '] 12 0 60 11 5 251 0 6409 6366
yaml_parser_load /src/h2o/deps/yaml/src/loader.c 2 ['struct.yaml_parser_s *', 'struct.yaml_document_s *'] 9 0 152 30 10 95 0 1860 1850
yaml_emitter_dump /src/h2o/deps/yaml/src/dumper.c 2 ['struct.yaml_emitter_s *', 'struct.yaml_document_s *'] 9 0 170 28 10 73 0 1213 1168
decompress_certificate /src/h2o/deps/picotls/lib/certificate_compression.c 6 ['struct.st_ptls_decompress_certificate_t.464 *', 'struct.st_ptls_t *', 'N/A', 'char *', 'size_t ', 'struct.st_h2o_iovec_t *'] 4 0 56 11 5 44 0 664 662
h2o_accept_setup_redis_ssl_resumption /src/h2o/lib/core/util.c 4 ['char *', 'N/A', 'int ', 'char *'] 15 0 28 3 2 538 0 2737 613
h2o_errordoc_register /src/h2o/lib/handler/errordoc.c 3 ['struct.st_h2o_pathconf_t *', 'struct.st_ptls_compressed_certificate_entry_t *', 'size_t '] 18 0 67 9 4 778 0 3948 549
h2o_proxy_register_configurator /src/h2o/lib/handler/configurator/proxy.c 1 ['struct.st_h2o_globalconf_t *'] 6 0 86 3 2 261 0 1082 426

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

Functions statically reachable by fuzzers
57.9%
1936 / 3363
Cyclomatic complexity statically reachable by fuzzers
71.0%
19327 / 27077

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

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/h2o/lib/core/logconf.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/usr/include/x86_64-linux-gnu/bits/socket.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/hiredis/hiredis.c [] []
/src/h2o/deps/libyrmcds/send_text.c [] []
/src/h2o/lib/common/token_table.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/configurator/headers_util.c [] []
/src/h2o/lib/common/memory.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/usr/include/stdlib.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/quicly/include/quicly/maxsender.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/core/context.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/headers.c [] []
/src/h2o/deps/yaml/src/parser.c [] []
/src/h2o/fuzz/quicly_mock.c ['h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/handler/mimemap.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/picotls/lib/picotls.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/http3/server.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/http2/connection.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/usr/include/openssl/x509.h [] []
/src/h2o/deps/hiredis/read.c [] []
/src/h2o/lib/common/serverutil.c ['h2o-fuzzer-http3'] []
/src/h2o/deps/brotli/c/common/dictionary.c [] []
/src/h2o/lib/handler/configurator/reproxy.c [] []
/src/h2o/include/h2o/httpclient.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/usr/include/x86_64-linux-gnu/sys/stat.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/common/filecache.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/connect.c [] []
/src/h2o/include/h2o/hostinfo.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/picotls/include/picotls.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/include/h2o/socket/evloop.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/include/h2o/socket.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/access_log.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/brotli/c/enc/./backward_references_inc.h [] []
/src/h2o/deps/brotli/c/enc/literal_cost.c [] []
/src/h2o/fuzz/driver_url.cc ['h2o-fuzzer-url'] ['h2o-fuzzer-url']
/src/h2o/lib/http2/frame.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/lib/common/socket/evloop.c.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/configurator/self_trace.c [] []
/src/h2o/deps/quicly/lib/loss.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/http2/scheduler.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/lib/core/request.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/yaml/src/scanner.c [] []
/src/h2o/include/h2o/socketpool.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/include/quicly/recvstate.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/core/proxy.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/file/templates.c.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/hiredis/sds.h [] []
/src/h2o/deps/libyrmcds/text_mode.c [] []
/src/h2o/deps/quicly/lib/cc-reno.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/yaml/src/reader.c [] []
/src/h2o/deps/brotli/c/enc/entropy_encode.c [] []
/src/h2o/lib/common/http3client.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/expires.c [] []
/src/h2o/include/h2o/http2_common.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/lib/common/multithread.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/socket/evloop/epoll.c.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/file.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/handler/configurator/errordoc.c [] []
/src/h2o/deps/yaml/src/loader.c [] []
/src/h2o/lib/common/time.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/brotli/c/enc/compress_fragment_two_pass.c [] []
/src/h2o/lib/common/cache.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/handler/compress.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/deps/picotls/deps/cifra/src/bitops.h [] []
/src/h2o/deps/picohttpparser/picohttpparser.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/include/quicly/ranges.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/http1.c ['h2o-fuzzer-http1'] ['h2o-fuzzer-http1']
/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h ['h2o-fuzzer-http1'] []
/src/h2o/deps/brotli/c/enc/./block_splitter_inc.h [] []
/src/h2o/deps/quicly/include/quicly/sentmap.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/common/httpclient.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/yaml/src/writer.c [] []
/src/h2o/lib/common/socket.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/usr/include/openssl/x509v3.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/http2/stream.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/deps/quicly/include/quicly/streambuf.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/include/h2o/linklist.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/server_timing.c [] []
/src/h2o/deps/brotli/c/enc/backward_references.c [] []
/src/h2o/deps/brotli/c/enc/./hash_longest_match64_inc.h [] []
/src/h2o/include/h2o/absprio.h ['h2o-fuzzer-http1'] []
/src/h2o/deps/brotli/c/enc/metablock.c [] []
/src/h2o/lib/handler/configurator/access_log.c [] []
/src/h2o/lib/handler/reproxy.c [] []
/src/h2o/deps/picotls/deps/cifra/src/blockwise.c [] []
/src/h2o/lib/handler/configurator/status.c [] []
/src/h2o/include/h2o/multithread.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/brotli/c/enc/./hash_forgetful_chain_inc.h [] []
/src/h2o/deps/picotls/include/picotls/../picotls.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/http3/qpack.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/handler/status.c [] []
/src/h2o/lib/handler/configurator/file.c [] []
/src/h2o/lib/handler/compress/brotli.c [] []
/src/h2o/fuzz/driver_common.cc ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/compress/gzip.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/common/http1client.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/lib/frame.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/common/url.c ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/../../deps/ssl-conservatory/openssl/openssl_hostname_validation.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/cloexec/cloexec.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/lib/quicly.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/deps/picotls/lib/cifra/random.c [] []
/src/h2o/deps/yaml/src/api.c [] []
/src/h2o/deps/brotli/c/enc/histogram.c [] []
/src/h2o/deps/quicly/lib/defaults.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/deps/picotls/lib/certificate_compression.c [] []
/src/h2o/deps/brotli/c/enc/backward_references_hq.c [] []
/src/h2o/deps/quicly/lib/cc-pico.c [] []
/src/h2o/deps/libyrmcds/close.c [] []
/src/h2o/lib/handler/configurator/headers.c [] []
/src/h2o/deps/picotls/lib/openssl.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/hiredis/dict.c [] []
/src/h2o/lib/handler/status/memory.c [] []
/src/h2o/lib/handler/configurator/throttle_resp.c [] []
/src/h2o/deps/brotli/c/enc/./bit_cost_inc.h [] []
/src/h2o/deps/picotls/lib/hpke.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/quicly/include/quicly/sendstate.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/deps/brotli/c/enc/./metablock_inc.h [] []
/src/h2o/deps/brotli/c/dec/state.c [] []
/src/h2o/deps/quicly/include/quicly.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/deps/hiredis/net.c [] []
/src/h2o/fuzz/driver_h3.cc ['h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/deps/hiredis/async.c [] []
/src/h2o/lib/handler/self_trace.c [] []
/src/h2o/lib/handler/fastcgi.c [] []
/src/h2o/include/h2o/string_.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/include/h2o.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/include/quicly/retire_cid.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/common/balancer/least_conn.c [] []
/src/h2o/deps/yaml/src/dumper.c [] []
/src/h2o/deps/brotli/c/enc/encode.c [] []
/src/h2o/deps/klib/khash.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/picotls/deps/cifra/src/hmac.c [] []
/src/h2o/lib/common/token.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/picotls/lib/cifra/x25519.c [] []
/src/h2o/lib/core/util.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/brotli/c/dec/./transform.h [] []
/src/h2o/deps/quicly/include/quicly/loss.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/brotli/c/enc/utf8_util.c [] []
/src/h2o/deps/brotli/c/enc/./hash_longest_match_inc.h [] []
/src/h2o/deps/libyrmcds/recv.c [] []
/src/h2o/deps/hiredis/sds.c [] []
/src/h2o/deps/picotls/deps/cifra/src/drbg.c [] []
/src/h2o/lib/handler/configurator/redirect.c [] []
/src/h2o/deps/brotli/c/enc/./hash_to_binary_tree_inc.h [] []
/src/h2o/include/h2o/http3_common.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/quicly/lib/recvstate.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/core/config.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/http2/cache_digests.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/fuzz/driver.cc ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/deps/brotli/c/dec/bit_reader.c [] []
/src/h2o/deps/quicly/lib/cc-cubic.c [] []
/src/h2o/deps/quicly/lib/rate.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/common/absprio.c ['h2o-fuzzer-http1'] []
/src/h2o/lib/handler/status/events.c [] []
/src/h2o/lib/common/balancer/roundrobin.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/quicly-tracer.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/common/string.c ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/include/quicly/frame.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/handler/configurator/server_timing.c [] []
/src/h2o/deps/brotli/c/enc/compress_fragment.c [] []
/src/h2o/lib/handler/redirect.c [] []
/src/h2o/deps/brotli/c/enc/./block_encoder_inc.h [] []
/src/h2o/include/h2o/http3_internal.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/include/h2o/url.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/headers_util.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/lib/handler/configurator/fastcgi.c [] []
/src/h2o/deps/libyrmcds/strerror.c [] []
/src/h2o/deps/picotls/deps/cifra/src/ext/handy.h [] []
/src/h2o/deps/yaml/src/emitter.c [] []
/src/h2o/deps/libgkc/gkc.c [] []
/src/h2o/lib/handler/file.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/core/headers.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/configurator/proxy.c [] []
/src/h2o/deps/brotli/c/enc/./hash_longest_match_quickly_inc.h [] []
/src/h2o/deps/picotls/lib/pembase64.c [] []
/src/h2o/lib/http2/casper.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/handler/errordoc.c [] []
/src/h2o/lib/handler/configurator/compress.c [] []
/src/h2o/lib/http2/http2_debug_state.c [] []
/src/h2o/deps/quicly/lib/ranges.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/deps/libyrmcds/connect.c [] []
/src/h2o/deps/quicly/lib/local_cid.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/brotli/c/enc/static_dict.c [] []
/src/h2o/lib/handler/http2_debug_state.c [] []
/src/h2o/lib/handler/status/ssl.c [] []
/src/h2o/deps/yoml/yoml.h [] []
/src/h2o/deps/quicly/lib/remote_cid.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/lib/http2/hpack.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/libyrmcds/socket.c [] []
/src/h2o/lib/core/configurator.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/http2client.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/handler/proxy.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/redis.c [] []
/src/h2o/lib/http3/frame.c [] []
/src/h2o/lib/handler/status/requests.c [] []
/src/h2o/include/h2o/http2_scheduler.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/lib/handler/configurator/http2_debug_state.c [] []
/src/h2o/lib/common/rand.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/brotli/c/enc/./cluster_inc.h [] []
/src/h2o/deps/brotli/c/dec/decode.c [] []
/src/h2o/deps/quicly/include/quicly/linklist.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/quicly/include/quicly/cid.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/include/h2o/memory.h ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-url', 'h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/lib/sendstate.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http3']
/src/h2o/lib/common/timerwheel.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/picotls/deps/cifra/src/chash.c [] []
/src/h2o/lib/handler/throttle_resp.c [] []
/src/h2o/lib/http3/common.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/brotli/c/enc/brotli_bit_stream.c [] []
/src/h2o/deps/brotli/c/enc/block_splitter.c [] []
/src/h2o/deps/quicly/lib/streambuf.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/include/h2o/time_.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/lib/common/hostinfo.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/picotls/deps/cifra/src/curve25519.tweetnacl.c [] []
/src/h2o/lib/common/memcached.c [] []
/usr/include/x86_64-linux-gnu/bits/byteswap.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] []
/src/h2o/deps/quicly/include/quicly/local_cid.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/quicly/lib/retire_cid.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/libyrmcds/send.c [] []
/src/h2o/lib/handler/status/durations.c [] []
/src/h2o/include/h2o/http2_internal.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2']
/src/h2o/deps/brotli/c/dec/huffman.c [] []
/src/h2o/lib/handler/configurator/expires.c [] []
/src/h2o/lib/common/socketpool.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/quicly/lib/sentmap.c ['h2o-fuzzer-http1', 'h2o-fuzzer-http2'] []
/src/h2o/deps/golombset/golombset.h ['h2o-fuzzer-http1'] ['h2o-fuzzer-http1']
/src/h2o/deps/brotli/c/enc/memory.c [] []
/src/h2o/include/h2o/timerwheel.h ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3'] ['h2o-fuzzer-http1', 'h2o-fuzzer-http2', 'h2o-fuzzer-http3']
/src/h2o/deps/picotls/deps/cifra/src/sha256.c [] []

Directories in report

Directory
/usr/include/x86_64-linux-gnu/sys/
/src/h2o/include/h2o/
/src/h2o/deps/brotli/c/dec/
/src/h2o/deps/libgkc/
/src/h2o/deps/picotls/include/
/src/h2o/lib/handler/configurator/
/usr/include/openssl/
/src/h2o/deps/picotls/deps/cifra/src/
/src/h2o/lib/
/usr/include/x86_64-linux-gnu/bits/
/src/h2o/lib/common/socket/evloop/
/src/h2o/
/src/h2o/deps/cloexec/
/src/h2o/deps/picotls/include/picotls/../
/src/h2o/deps/hiredis/
/src/h2o/deps/quicly/lib/
/src/h2o/lib/handler/status/
/src/h2o/deps/brotli/c/dec/./
/src/h2o/include/h2o/socket/
/src/h2o/lib/http2/
/src/h2o/deps/golombset/
/src/h2o/deps/picohttpparser/
/src/h2o/deps/picotls/lib/
/src/h2o/deps/brotli/c/enc/./
/src/h2o/lib/http3/
/src/h2o/lib/core/
/src/h2o/deps/brotli/c/common/
/src/h2o/deps/quicly/include/quicly/
/src/h2o/deps/picotls/lib/cifra/
/src/h2o/lib/common/socket/
/src/h2o/lib/handler/file/
/src/h2o/deps/yaml/src/
/src/h2o/lib/common/balancer/
/src/h2o/lib/common/../../deps/ssl-conservatory/openssl/
/src/h2o/fuzz/
/src/h2o/lib/common/
/src/h2o/lib/handler/compress/
/src/h2o/deps/libyrmcds/
/src/h2o/deps/yoml/
/src/h2o/deps/picotls/deps/cifra/src/ext/
/src/h2o/include/
/src/h2o/lib/handler/
/src/h2o/deps/klib/
/usr/include/
/src/h2o/deps/brotli/c/enc/
/src/h2o/deps/quicly/include/