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

Project functions overview

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

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

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

Fuzzer details

Fuzzer: patch_parse_fuzzer

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 24 9.95%
gold [1:9] 16 6.63%
yellow [10:29] 17 7.05%
greenyellow [30:49] 5 2.07%
lawngreen 50+ 179 74.2%
All colors 241 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
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00000 /src/libgit2/src/util/tsort.c:346
226 339 3 :

['git__free.137', 'git_error_set_oom', 'git_str_grow']

226 339 git_str_vprintf call site: 00024 /src/libgit2/src/util/str.c:529
126 126 1 :

['get_passwd_home']

126 365 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
126 126 1 :

['get_passwd_home']

126 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
113 113 1 :

['git_error_set_oom']

113 113 git_str_try_grow call site: 00011 /src/libgit2/src/util/str.c:75
18 131 11 :

['getsid', 'getgid', '__errno_location', 'gettimeofday', 'getpid', 'getloadavg', 'git_error_set', 'getuid', 'getpgid', 'git_time_monotonic.5277', 'getppid']

18 131 getseed call site: 00000 /src/libgit2/src/util/rand.c:89
9 9 1 :

['git_vector_dispose_deep']

9 9 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
8 8 1 :

['git_filter_free']

8 8 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
4 117 3 :

['git_str_puts', 'strerror', '__errno_location']

4 232 git_error_vset call site: 00028 /src/libgit2/src/util/errors.c:205
2 2 1 :

['abort']

2 2 LLVMFuzzerInitialize call site: 00000 /src/libgit2/build/../fuzzers/patch_parse_fuzzer.c:23
2 2 1 :

['__ctype_b_loc']

2 2 git_parse_peek call site: 00076 /src/libgit2/src/libgit2/parse.c:126
0 115 1 :

['git_parse_err']

0 234 parse_header_git_newpath call site: 00000 /src/libgit2/src/libgit2/patch_parse.c:134

Runtime coverage analysis

Covered functions
154
Functions that are reachable but not covered
12
Reachable functions
81
Percentage of reachable functions covered
85.19%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/patch_parse_fuzzer.c 1
src/libgit2/patch_parse.c 22
src/util/alloc.c 3
src/util/errors.c 7
src/util/thread.c 2
src/util/str.c 10
src/util/alloc.h 3
src/util/str.h 1
src/libgit2/parse.c 9
src/util/util.c 3
src/util/thread.h 2
src/libgit2/parse.h 1
src/util/integer.h 1
src/util/array.h 1
src/libgit2/oid.h 2
src/libgit2/patch.c 2

Fuzzer: commit_graph_fuzzer

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 99 52.3%
gold [1:9] 12 6.34%
yellow [10:29] 6 3.17%
greenyellow [30:49] 1 0.52%
lawngreen 50+ 71 37.5%
All colors 189 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
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00000 /src/libgit2/src/util/tsort.c:346
243 243 2 :

['commit_graph_parse_extra_edge_list', 'commit_graph_parse_commit_data']

243 243 git_commit_graph_file_parse call site: 00126 /src/libgit2/src/libgit2/commit_graph.c:292
226 339 3 :

['git__free.137', 'git_error_set_oom', 'git_str_grow']

226 339 git_str_vprintf call site: 00021 /src/libgit2/src/util/str.c:529
126 126 1 :

['get_passwd_home']

246 365 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
126 126 1 :

['get_passwd_home']

246 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
120 120 1 :

['git_futils_mmap_free']

120 120 git_commit_graph_file_close call site: 00183 /src/libgit2/src/libgit2/commit_graph.c:664
113 113 1 :

['git_error_set_oom']

113 113 git_str_try_grow call site: 00004 /src/libgit2/src/util/str.c:75
18 131 11 :

['getsid', 'getgid', '__errno_location', 'gettimeofday', 'getpid', 'getloadavg', 'git_error_set', 'getuid', 'getpgid', 'git_time_monotonic.5277', 'getppid']

18 131 getseed call site: 00000 /src/libgit2/src/util/rand.c:89
9 9 1 :

['git_vector_dispose_deep']

9 9 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
8 8 1 :

['git_filter_free']

8 8 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
4 117 3 :

['git_str_puts', 'strerror', '__errno_location']

4 232 git_error_vset call site: 00025 /src/libgit2/src/util/errors.c:205
2 115 2 :

['git_atomic32_dec', 'git_error_set']

2 115 git_runtime_shutdown_register call site: 00000 /src/libgit2/src/util/runtime.c:51

Runtime coverage analysis

Covered functions
119
Functions that are reachable but not covered
45
Reachable functions
92
Percentage of reachable functions covered
51.09%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/commit_graph_fuzzer.c 1
src/util/str.c 9
src/util/errors.c 5
src/util/thread.c 2
src/util/alloc.h 2
src/util/str.h 2
src/util/hash.c 5
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
build/../src/util/str.h 2
src/libgit2/commit_graph.c 9
src/libgit2/oid.h 6
src/libgit2/pack.c 1
src/libgit2/odb.c 2
src/libgit2/oid.c 4
src/util/futils.c 1
src/util/unix/map.c 1

Fuzzer: config_file_fuzzer

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 193 63.4%
gold [1:9] 7 2.30%
yellow [10:29] 3 0.98%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 101 33.2%
All colors 304 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
1216 1338 3 :

['git_regexp_compile', 'git__free.7488', 'git__calloc']

1216 1338 git_config_iterator_glob_new call site: 00163 /src/libgit2/src/libgit2/config.c:557
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00121 /src/libgit2/src/util/tsort.c:346
133 133 1 :

['try_remove_existing_backend']

133 609 git_config__add_instance call site: 00107 /src/libgit2/src/libgit2/config.c:300
126 126 1 :

['get_passwd_home']

246 365 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
126 126 1 :

['get_passwd_home']

246 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
113 113 1 :

['git_error_set_oom']

113 113 git_str_try_grow call site: 00010 /src/libgit2/src/util/str.c:75
18 131 11 :

['getsid', 'getgid', '__errno_location', 'gettimeofday', 'getpid', 'getloadavg', 'git_error_set', 'getuid', 'getpgid', 'git_time_monotonic.5277', 'getppid']

18 131 getseed call site: 00000 /src/libgit2/src/util/rand.c:89
9 9 1 :

['git_vector_dispose_deep']

9 9 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
8 8 1 :

['git_filter_free']

8 8 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
4 117 3 :

['git_str_puts', 'strerror', '__errno_location']

4 232 git_error_vset call site: 00027 /src/libgit2/src/util/errors.c:205
0 189 1 :

['git_config_list_add_string']

0 382 git_config_list_dup_entry call site: 00000 /src/libgit2/src/libgit2/config_list.c:73
0 116 1 :

['set_parse_error']

0 116 parse_section_header call site: 00000 /src/libgit2/src/libgit2/config_parse.c:211

Runtime coverage analysis

Covered functions
170
Functions that are reachable but not covered
61
Reachable functions
119
Percentage of reachable functions covered
48.74%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/config_file_fuzzer.c 2
src/libgit2/config.c 16
src/util/alloc.c 3
src/util/errors.c 7
src/util/thread.c 2
src/util/str.c 8
src/util/alloc.h 3
src/util/str.h 1
src/util/vector.c 7
src/util/thread.h 2
src/libgit2/config_mem.c 2
src/libgit2/config_list.c 7
src/libgit2/common.h 1
src/util/tsort.c 12
src/util/util.c 1
src/util/regexp.c 1
deps/pcre/pcre_compile.c 31
deps/pcre/pcre_newline.c 1
src/util/errors.h 1
build/..config_backend.h 1

Fuzzer: midx_fuzzer

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 92 43.3%
gold [1:9] 17 8.01%
yellow [10:29] 7 3.30%
greenyellow [30:49] 2 0.94%
lawngreen 50+ 94 44.3%
All colors 212 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
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00000 /src/libgit2/src/util/tsort.c:346
239 239 2 :

['midx_parse_object_offsets', 'midx_parse_object_large_offsets']

239 239 git_midx_parse call site: 00157 /src/libgit2/src/libgit2/midx.c:275
226 339 3 :

['git__free.137', 'git_error_set_oom', 'git_str_grow']

226 339 git_str_vprintf call site: 00021 /src/libgit2/src/util/str.c:529
126 126 1 :

['get_passwd_home']

246 365 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
126 126 1 :

['get_passwd_home']

246 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
120 120 1 :

['git_futils_mmap_free']

120 125 git_midx_close call site: 00204 /src/libgit2/src/libgit2/midx.c:484
113 113 1 :

['git_error_set_oom']

113 113 git_str_try_grow call site: 00004 /src/libgit2/src/util/str.c:75
18 131 11 :

['getsid', 'getgid', '__errno_location', 'gettimeofday', 'getpid', 'getloadavg', 'git_error_set', 'getuid', 'getpgid', 'git_time_monotonic.5277', 'getppid']

18 131 getseed call site: 00000 /src/libgit2/src/util/rand.c:89
9 9 1 :

['git_vector_dispose_deep']

9 9 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
8 8 1 :

['git_filter_free']

8 8 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
4 117 3 :

['git_str_puts', 'strerror', '__errno_location']

4 232 git_error_vset call site: 00025 /src/libgit2/src/util/errors.c:205
2 115 2 :

['git_atomic32_dec', 'git_error_set']

2 115 git_runtime_shutdown_register call site: 00000 /src/libgit2/src/util/runtime.c:51

Runtime coverage analysis

Covered functions
123
Functions that are reachable but not covered
50
Reachable functions
105
Percentage of reachable functions covered
52.38%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/midx_fuzzer.c 1
src/util/str.c 9
src/util/errors.c 5
src/util/thread.c 2
src/util/alloc.h 2
src/util/str.h 2
src/util/hash.c 5
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
build/../src/util/str.h 2
src/libgit2/midx.c 9
src/libgit2/oid.h 6
src/util/vector.c 5
src/util/alloc.c 1
src/util/util.c 2
src/util/vector.h 2
src/libgit2/pack.c 1
src/libgit2/odb.c 2
src/libgit2/oid.c 4
src/util/futils.c 1
src/util/unix/map.c 1

Fuzzer: objects_fuzzer

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 50 38.4%
gold [1:9] 7 5.38%
yellow [10:29] 7 5.38%
greenyellow [30:49] 2 1.53%
lawngreen 50+ 64 49.2%
All colors 130 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
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00000 /src/libgit2/src/util/tsort.c:346
126 126 1 :

['get_passwd_home']

246 365 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
126 126 1 :

['get_passwd_home']

246 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
113 113 1 :

['git_error_set_oom']

113 113 git_str_try_grow call site: 00010 /src/libgit2/src/util/str.c:75
18 131 11 :

['getsid', 'getgid', '__errno_location', 'gettimeofday', 'getpid', 'getloadavg', 'git_error_set', 'getuid', 'getpgid', 'git_time_monotonic.5277', 'getppid']

18 131 getseed call site: 00000 /src/libgit2/src/util/rand.c:89
9 9 1 :

['git_vector_dispose_deep']

9 9 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
8 8 1 :

['git_filter_free']

8 8 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
4 117 3 :

['git_str_puts', 'strerror', '__errno_location']

4 232 git_error_vset call site: 00031 /src/libgit2/src/util/errors.c:205
2 2 1 :

['memchr']

2 2 git__memmem call site: 00000 /src/libgit2/src/util/util.c:345
0 115 2 :

['git_atomic32_dec', 'git_error_set']

0 115 git_runtime_shutdown_register call site: 00000 /src/libgit2/src/util/runtime.c:51
0 113 1 :

['git_str_put']

4 345 git_error_vset call site: 00021 /src/libgit2/src/util/errors.c:201
0 113 1 :

['git_error_set']

0 113 git_odb__format_object_header call site: 00064 /src/libgit2/src/libgit2/odb.c:99

Runtime coverage analysis

Covered functions
161
Functions that are reachable but not covered
24
Reachable functions
76
Percentage of reachable functions covered
68.42%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/objects_fuzzer.c 1
src/libgit2/object.c 6
src/util/errors.c 5
src/util/thread.c 2
src/util/str.c 7
src/util/alloc.h 3
src/util/str.h 1
src/util/alloc.c 1
src/libgit2/odb.c 4
src/libgit2/oid.h 1
src/util/hash.c 5
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
src/libgit2/cache.h 1
src/util/thread.h 2
src/libgit2/cache.c 1

Fuzzer: packfile_fuzzer

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 889 63.3%
gold [1:9] 116 8.26%
yellow [10:29] 16 1.14%
greenyellow [30:49] 1 0.07%
lawngreen 50+ 381 27.1%
All colors 1403 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
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 01076 /src/libgit2/src/util/tsort.c:346
724 724 1 :

['check_object_connectivity']

837 2080 store_object call site: 00671 /src/libgit2/src/libgit2/indexer.c:510
463 792 3 :

['update_header_and_rehash', 'write_at', 'git_hash_final']

668 4406 git_indexer_commit call site: 01060 /src/libgit2/src/libgit2/indexer.c:1290
426 426 1 :

['git_futils_creat_locked_withpath']

442 1229 lock_file call site: 01171 /src/libgit2/src/util/filebuf.c:54
417 417 2 :

['git_odb_stream_free', 'git_odb_open_wstream']

417 417 git_odb_write call site: 00172 /src/libgit2/src/libgit2/odb.c:1634
370 950 9 :

['git_fs_path_apply_relative', '__errno_location', 'git_error_set', 'git_fs_path_root', 'git_str_sets', 'readlink', 'git_fs_path_dirname_r', 'lstat', 'git_str_swap']

370 1533 resolve_symlink call site: 01131 /src/libgit2/src/util/filebuf.c:211
338 338 1 :

['deflate']

338 458 git_zstream_get_output_chunk call site: 00569 /src/libgit2/src/util/zstream.c:122
179 179 1 :

['git_commit_graph_refresh']

181 181 git_odb_refresh call site: 00137 /src/libgit2/src/libgit2/odb.c:1930
139 268 3 :

['git_mwindow_close_lru_window_locked', 'git__free.483', 'git_futils_mmap_ro']

139 268 new_window_locked call site: 00452 /src/libgit2/src/libgit2/mwindow.c:360
133 270 2 :

['git_mwindow_free_all_locked', 'git_mwindow_find_lru_file_locked']

141 545 git_mwindow_file_register call site: 00300 /src/libgit2/src/libgit2/mwindow.c:466
126 126 1 :

['get_passwd_home']

246 246 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
126 126 1 :

['git_array__alloc']

126 126 impl__write call site: 00000 /src/libgit2/src/libgit2/odb_mempack.c:60

Runtime coverage analysis

Covered functions
275
Functions that are reachable but not covered
265
Reachable functions
470
Percentage of reachable functions covered
43.62%
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
build/../fuzzers/packfile_fuzzer.c 1
src/libgit2/odb_mempack.c 3
src/util/alloc.h 3
src/libgit2/odb.c 31
src/util/errors.c 10
src/util/thread.c 2
src/util/str.c 19
src/util/str.h 5
src/libgit2/object.c 6
src/libgit2/oid.h 10
src/util/hash.c 7
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
src/libgit2/oid.c 9
src/util/vector.h 2
src/libgit2/commit_graph.c 4
src/util/futils.c 14
src/util/posix.c 4
src/util/fs_path.c 11
src/util/integer.h 2
src/util/unix/map.c 2
src/util/alloc.c 3
src/libgit2/indexer.c 43
src/util/rand.c 2
src/libgit2/pack.c 46
src/util/util.c 1
src/libgit2/mwindow.c 10
src/util/vector.c 10
src/util/runtime.c 3
src/util/thread.h 6
src/util/errors.h 1
src/libgit2/hashmap_oid.h 1
src/util/zstream.c 11
deps/zlib/inflate.c 10
deps/zlib/deflate.c 16
deps/zlib/adler32.c 2
deps/zlib/trees.c 20
deps/zlib/inftrees.c 1
deps/zlib/inffast.c 1
src/libgit2/cache.h 1
src/libgit2/cache.c 20
deps/zlib/crc32.c 5
src/util/hash.h 1
src/util/filebuf.h 1
src/util/array.h 1
src/libgit2/delta.c 2
src/util/tsort.c 12
src/util/filebuf.c 12
src/util/fs_path.h 1
src/util/hashmap_str.h 7
src/util/pool.c 4
src/util/unix/posix.h 1
build/../src/util/str.h 1

Fuzzer: download_refs_fuzzer

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 983 52.4%
gold [1:9] 247 13.1%
yellow [10:29] 87 4.64%
greenyellow [30:49] 10 0.53%
lawngreen 50+ 548 29.2%
All colors 1875 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
4365 4365 1 :

['filesystem_iterator_entry_hash']

4365 4365 filesystem_iterator_entry_init call site: 00000 /src/libgit2/src/libgit2/iterator.c:1334
2526 2526 2 :

['ensure_remote_name_is_valid', 'ensure_remote_doesnot_exist']

4129 9669 git_remote_create_with_opts call site: 00047 /src/libgit2/src/libgit2/remote.c:227
2131 2131 2 :

['git_tree_entry_bypath', 'git_tree_entry_free']

2362 2362 filesystem_iterator_is_submodule call site: 00000 /src/libgit2/src/libgit2/iterator.c:1113
1813 1813 1 :

['git_repository_index__weakptr']

1813 2926 iterator_init_common call site: 00000 /src/libgit2/src/libgit2/iterator.c:131
1252 1252 1 :

['git_config_foreach_match']

1252 1252 check_extensions call site: 00000 /src/libgit2/src/libgit2/repository.c:1930
1062 1965 7 :

['git_error_clear', 'git_config__get_path', 'git_futils_cp_r', 'git_config_open_default', 'git_str_dispose', 'git_sysdir_find_template_dir', 'git_config_free']

1066 2539 repo_init_structure call site: 00000 /src/libgit2/src/libgit2/repository.c:2570
838 840 4 :

['remove_multi_pack_index', 'process_multi_pack_index_pack', 'git_vector_resize_to', 'git_vector_length']

838 840 refresh_multi_pack_index call site: 01137 /src/libgit2/src/libgit2/odb_pack.c:486
750 750 6 :

['merge', 'compute_minrun', 'check_invariant', 'count_run', 'collapse', 'git__free.14496']

750 810 git__tsort_r call site: 00284 /src/libgit2/src/util/tsort.c:346
729 729 1 :

['dotgit_flags']

729 795 git_path_str_is_valid call site: 00000 /src/libgit2/src/libgit2/path.c:320
724 724 1 :

['check_object_connectivity']

837 2080 store_object call site: 00000 /src/libgit2/src/libgit2/indexer.c:510
530 530 1 :

['git_repository_free']

530 530 git_repository_open_ext call site: 00000 /src/libgit2/src/libgit2/repository.c:1182
491 1096 9 :

['fstat', 'git_futils_mmap_ro', 'git__calloc', 'git__is_sizet.10777', 'git_error_set', 'git_midx_free', 'git_str_sets', 'close', 'git_midx_parse']

491 1096 git_midx_open call site: 01067 /src/libgit2/src/libgit2/midx.c:302

Runtime coverage analysis

Covered functions
811
Functions that are reachable but not covered
213
Reachable functions
580
Percentage of reachable functions covered
63.28%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
build/../fuzzers/download_refs_fuzzer.c 1
src/libgit2/remote.c 43
src/util/errors.c 10
src/util/thread.c 2
src/util/str.c 19
src/util/alloc.h 3
src/util/str.h 6
src/libgit2/common.h 1
src/libgit2/refspec.c 6
src/util/alloc.c 4
src/libgit2/refs.c 6
src/libgit2/repository.c 18
src/util/util.c 9
src/libgit2/config.c 41
src/libgit2/sysdir.c 7
src/util/fs_path.c 15
src/util/vector.c 14
src/util/thread.h 7
src/libgit2/config_file.c 1
src/util/tsort.c 12
src/util/regexp.c 1
deps/pcre/pcre_compile.c 31
deps/pcre/pcre_newline.c 1
src/util/errors.h 1
src/libgit2/push.c 3
src/libgit2/config_cache.c 3
build/../fuzzers/fuzzer_utils.c 1
src/util/runtime.c 3
src/libgit2/buf.c 1
src/libgit2/transport.c 3
src/libgit2/remote.h 1
src/libgit2/strarray.c 2
src/libgit2/proxy.c 3
src/libgit2/fetch.c 6
src/util/wildmatch.c 2
src/libgit2/oid.h 9
src/util/util.h 2
src/libgit2/oid.c 8
src/libgit2/odb.c 18
src/libgit2/cache.c 14
src/libgit2/object.c 1
src/util/vector.h 2
src/libgit2/odb_loose.c 2
src/libgit2/odb_pack.c 10
src/libgit2/midx.c 11
src/util/futils.c 17
src/util/posix.c 4
src/util/integer.h 2
src/util/unix/map.c 2
src/libgit2/mwindow.c 12
src/libgit2/pack.c 9
src/util/hashmap_str.h 7
src/util/fs_path.h 2
src/libgit2/commit_graph.c 13
src/util/hash.c 5
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
src/libgit2/hashmap_oid.h 1
src/libgit2/cache.h 1
src/libgit2/grafts.c 21
src/libgit2/parse.c 5
src/util/array.h 1
src/util/filebuf.h 1
src/util/filebuf.c 10
deps/zlib/deflate.c 7
deps/zlib/adler32.c 2
deps/zlib/trees.c 3
src/util/rand.c 2
src/util/pool.c 4
src/util/unix/posix.h 1
src/libgit2/oidarray.c 1

Fuzzer: revparse_fuzzer

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 1446 59.9%
gold [1:9] 235 9.73%
yellow [10:29] 136 5.63%
greenyellow [30:49] 26 1.07%
lawngreen 50+ 570 23.6%
All colors 2413 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
10843 35760 14 :

['handle_colon_syntax', 'ensure_base_rev_is_not_known_yet', 'any_left_hand_identifier', 'extract_path', 'handle_at_syntax', 'handle_linear_syntax', 'extract_curly_braces_content', 'git_str_cstr.1763', 'handle_grep_syntax', 'ensure_left_hand_identifier_is_not_known_yet', 'handle_caret_curly_syntax', 'ensure_base_rev_loaded', 'handle_caret_parent_syntax', 'extract_how_many']

10843 36226 revparse call site: 00052 /src/libgit2/src/libgit2/revparse.c:719
10843 35760 14 :

['handle_colon_syntax', 'ensure_base_rev_is_not_known_yet', 'any_left_hand_identifier', 'extract_path', 'handle_at_syntax', 'handle_linear_syntax', 'extract_curly_braces_content', 'git_str_cstr.1763', 'handle_grep_syntax', 'ensure_left_hand_identifier_is_not_known_yet', 'handle_caret_curly_syntax', 'ensure_base_rev_loaded', 'handle_caret_parent_syntax', 'extract_how_many']

10843 36226 revparse call site: 01865 /src/libgit2/src/libgit2/revparse.c:756
10843 35760 14 :

['handle_colon_syntax', 'ensure_base_rev_is_not_known_yet', 'any_left_hand_identifier', 'extract_path', 'handle_at_syntax', 'handle_linear_syntax', 'git_str_cstr.1763', 'extract_curly_braces_content', 'handle_grep_syntax', 'ensure_left_hand_identifier_is_not_known_yet', 'handle_caret_curly_syntax', 'ensure_base_rev_loaded', 'handle_caret_parent_syntax', 'extract_how_many']

10843 36226 revparse call site: 01884 /src/libgit2/src/libgit2/revparse.c:777
10843 35760 14 :

['handle_colon_syntax', 'ensure_base_rev_is_not_known_yet', 'any_left_hand_identifier', 'extract_path', 'handle_at_syntax', 'handle_linear_syntax', 'extract_curly_braces_content', 'git_str_cstr.1763', 'handle_grep_syntax', 'ensure_left_hand_identifier_is_not_known_yet', 'handle_caret_curly_syntax', 'ensure_base_rev_loaded', 'handle_caret_parent_syntax', 'extract_how_many']

10843 36226 revparse call site: 01933 /src/libgit2/src/libgit2/revparse.c:813
4365 4365 1 :

['filesystem_iterator_entry_hash']

4365 4365 filesystem_iterator_entry_init call site: 00000 /src/libgit2/src/libgit2/iterator.c:1334
2499 2499 1 :

['object_from_reference']

2499 2499 ensure_base_rev_loaded call site: 00052 /src/libgit2/src/libgit2/revparse.c:644
2131 2131 2 :

['git_tree_entry_bypath', 'git_tree_entry_free']

2362 2362 filesystem_iterator_is_submodule call site: 00000 /src/libgit2/src/libgit2/iterator.c:1113
2064 2064 1 :

['git_object_lookup']

2064 2082 retrieve_revobject_from_reflog call site: 01987 /src/libgit2/src/libgit2/revparse.c:299
1813 1813 1 :

['git_repository_index__weakptr']

1813 2926 iterator_init_common call site: 00000 /src/libgit2/src/libgit2/iterator.c:131
1252 1252 1 :

['git_config_foreach_match']

1252 1252 check_extensions call site: 00000 /src/libgit2/src/libgit2/repository.c:1930
1062 1965 7 :

['git_error_clear', 'git_config__get_path', 'git_futils_cp_r', 'git_config_open_default', 'git_str_dispose', 'git_sysdir_find_template_dir', 'git_config_free']

1066 2539 repo_init_structure call site: 00000 /src/libgit2/src/libgit2/repository.c:2570
838 840 4 :

['remove_multi_pack_index', 'process_multi_pack_index_pack', 'git_vector_resize_to', 'git_vector_length']

838 840 refresh_multi_pack_index call site: 00760 /src/libgit2/src/libgit2/odb_pack.c:486

Runtime coverage analysis

Covered functions
670
Functions that are reachable but not covered
368
Reachable functions
715
Percentage of reachable functions covered
48.53%
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
build/../fuzzers/revparse_fuzzer.c 1
src/libgit2/revparse.c 31
src/util/errors.c 10
src/util/thread.c 2
src/util/str.c 19
src/util/alloc.h 3
src/util/str.h 7
src/libgit2/refs.c 24
src/libgit2/config_cache.c 2
src/util/thread.h 8
src/libgit2/repository.c 17
src/util/util.c 12
src/libgit2/config.c 38
src/libgit2/sysdir.c 7
src/util/fs_path.c 12
src/util/alloc.c 5
src/util/vector.c 16
src/libgit2/config_file.c 1
src/libgit2/common.h 1
src/util/tsort.c 12
src/libgit2/refdb.c 12
src/libgit2/refdb_fs.c 3
src/util/futils.c 10
src/util/fs_path.h 2
src/util/hashmap_str.h 7
src/util/pool.c 7
src/util/sortedcache.c 1
src/util/util.h 3
src/libgit2/object.c 18
src/libgit2/oid.h 11
src/libgit2/odb.c 32
src/libgit2/cache.c 25
src/util/vector.h 3
src/libgit2/odb_loose.c 2
src/libgit2/odb_pack.c 10
src/libgit2/oid.c 10
src/libgit2/midx.c 11
src/util/posix.c 2
src/util/integer.h 3
src/util/unix/map.c 2
src/libgit2/mwindow.c 12
src/libgit2/pack.c 10
src/util/runtime.c 3
src/libgit2/commit_graph.c 17
src/util/hash.c 6
src/util/hash/collisiondetect.c 5
src/util/hash/sha1dc/sha1.c 9
src/util/hash/builtin.c 5
src/util/hash/rfc6234/sha224-256.c 8
src/util/hash/sha1dc/ubc_check.c 1
src/libgit2/hashmap_oid.h 1
src/libgit2/cache.h 1
src/util/regexp.c 4
deps/pcre/pcre_compile.c 31
deps/pcre/pcre_newline.c 2
deps/pcre/pcre_exec.c 4
src/libgit2/tag.c 2
src/libgit2/commit.c 9
src/libgit2/object_api.c 5
src/libgit2/revwalk.c 25
src/util/pqueue.c 5
src/libgit2/commit_list.c 10
src/util/array.h 2
src/libgit2/signature.c 5
src/libgit2/grafts.c 3
src/libgit2/tree.c 9
src/libgit2/tree.h 1
src/libgit2/reflog.c 8
src/libgit2/reflog.h 1
src/libgit2/branch.c 4
src/libgit2/remote.c 17
src/libgit2/refspec.c 8
src/util/errors.h 1
src/libgit2/push.c 3
src/util/wildmatch.c 2
src/util/date.c 18

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
git_submodule_update /src/libgit2/src/libgit2/submodule.c 3 ['N/A', 'int', 'N/A'] 70 0 411 70 29 1618 0 12163 6611
http_stream_write /src/libgit2/src/libgit2/transports/http.c 3 ['N/A', 'N/A', 'size_t'] 24 0 216 38 14 242 0 3402 3034
git_merge /src/libgit2/src/libgit2/merge.c 5 ['N/A', 'N/A', 'size_t', 'N/A', 'N/A'] 77 0 278 50 19 1483 0 11351 962
local_download_pack /src/libgit2/src/libgit2/transports/local.c 3 ['N/A', 'N/A', 'N/A'] 39 0 420 53 22 697 0 4547 732
git_email_create_from_commit /src/libgit2/src/libgit2/email.c 3 ['N/A', 'N/A', 'N/A'] 75 0 175 25 9 1187 0 8999 690
refdb_fs_backend__rename /src/libgit2/src/libgit2/refdb_fs.c 7 ['N/A', 'N/A', 'N/A', 'N/A', 'int', 'N/A', 'N/A'] 37 0 228 34 14 589 0 3680 479
git_patch_from_buffers /src/libgit2/src/libgit2/patch_generate.c 8 ['N/A', 'N/A', 'size_t', 'N/A', 'N/A', 'size_t', 'N/A', 'N/A'] 78 0 64 3 2 1208 0 9357 420

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

Functions statically reachable by fuzzers
60.0%
2419 / 4039
Cyclomatic complexity statically reachable by fuzzers
68.0%
20850 / 30563

All functions overview

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

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

Fuzz engine guidance

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

build/../fuzzers/patch_parse_fuzzer.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=['git_str_vprintf', 'git_str_put', 'set_error_from_buffer', 'git_str_try_grow', 'check_patch', 'git__calloc', 'git_str_grow', 'git_str_puts', 'git__linenlen']

build/../fuzzers/commit_graph_fuzzer.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=['commit_graph_parse_oid_lookup', 'SHA1DCFinal', 'git_hash_sha1_init', 'SHA1DCUpdate', 'git_str_vprintf', 'git_commit_graph_file_close', 'sha1_recompression_step', 'git_hash_ctx_cleanup', 'git_str_put', 'set_error_from_buffer']

build/../fuzzers/config_file_fuzzer.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=['git_config_iterator_new', 'git__tsort_r', 'git_config_add_backend', 'git_config_foreach_match', 'config_list_free', 'git_str_put', 'set_error_from_buffer', 'git_str_try_grow', 'git_str_set', 'git__calloc']

build/../fuzzers/midx_fuzzer.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=['midx_parse_oid_lookup', 'SHA1DCFinal', 'git_hash_sha1_init', 'SHA1DCUpdate', 'git_str_vprintf', 'git_midx_close', 'sha1_recompression_step', 'git_hash_ctx_cleanup', 'git_str_put', 'set_error_from_buffer']

build/../fuzzers/objects_fuzzer.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=['SHA1DCFinal', 'git_hash_sha1_init', 'SHA1DCUpdate', 'git_str_grow', 'sha1_recompression_step', 'git_cached_obj_decref', 'git_str_try_grow', 'git_str_put', 'git_odb__hashobj']

build/../fuzzers/packfile_fuzzer.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=['git_indexer_commit', 'lock_file', 'inflate', 'store_object', 'git_oid_equal', 'packfile_error', 'git__tsort_r', 'p_open', 'git__calloc', 'git_packfile_unpack_header']

build/../fuzzers/download_refs_fuzzer.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=['git_commit_graph_new', 'p_mmap', 'compile_branch', 'bisort', 'dowild', 'git_fs_path_set_error', 'git_odb_new_ext', 'could_be_empty_branch', 'git__suffixcmp', 'git_oid_cpy']

build/../fuzzers/revparse_fuzzer.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=['git_config__get_string_buf', 'refresh_multi_pack_index', 'git_reference_name', 'odb_read_1', 'prepare_walk', 'git_midx_open', 'git__strndup', 'git_commit_graph_new', 'extract_curly_braces_content', 'git_fs_path_set_error']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

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

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
getseed 35 11 31.42% ['patch_parse_fuzzer', 'download_refs_fuzzer', 'midx_fuzzer', 'config_file_fuzzer', 'packfile_fuzzer', 'commit_graph_fuzzer', 'revparse_fuzzer', 'objects_fuzzer']
git_config_list_pathmap__resize 97 44 45.36% ['revparse_fuzzer', 'config_file_fuzzer', 'download_refs_fuzzer']
resolve_deltas 41 8 19.51% ['download_refs_fuzzer', 'packfile_fuzzer']
git_mwindow_file_register 41 18 43.90% ['download_refs_fuzzer', 'packfile_fuzzer']
git_libgit2_opts 255 12 4.705% ['revparse_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
resolve_symlink 57 22 38.59% ['revparse_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
lock_file 44 11 25.0% ['revparse_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
git_odb_mempack_oidmap__put_idx 62 31 50.0% ['packfile_fuzzer']
git_odb_mempack_oidmap__resize 97 44 45.36% ['packfile_fuzzer']
filesystem_iterator_examine_path 36 12 33.33% ['revparse_fuzzer', 'download_refs_fuzzer']
git_midx_open 40 10 25.0% ['revparse_fuzzer', 'download_refs_fuzzer']
git_mwindow_get_pack 34 18 52.94% ['revparse_fuzzer', 'download_refs_fuzzer']
git_odb__add_default_backends 52 28 53.84% ['revparse_fuzzer', 'download_refs_fuzzer']
load_alternates 34 12 35.29% ['revparse_fuzzer', 'download_refs_fuzzer']
refresh_multi_pack_index 35 13 37.14% ['revparse_fuzzer', 'download_refs_fuzzer']
packfile_open_locked 43 23 53.48% ['download_refs_fuzzer', 'packfile_fuzzer']
packed_reload 71 15 21.12% ['revparse_fuzzer', 'download_refs_fuzzer']
iter_load_paths 43 19 44.18% ['revparse_fuzzer', 'download_refs_fuzzer']
git_remote_create_with_opts 83 41 49.39% ['download_refs_fuzzer']
find_repo 47 16 34.04% ['revparse_fuzzer', 'download_refs_fuzzer']
load_workdir 65 9 13.84% ['revparse_fuzzer', 'download_refs_fuzzer']
repo_init_config 56 30 53.57% ['revparse_fuzzer', 'download_refs_fuzzer']
repo_init_structure 67 27 40.29% ['revparse_fuzzer', 'download_refs_fuzzer']
prepare_walk 57 8 14.03% ['revparse_fuzzer', 'download_refs_fuzzer']
git_smart__negotiate_fetch 143 41 28.67% ['download_refs_fuzzer']
git_filebuf_printf 41 17 41.46% ['revparse_fuzzer', 'download_refs_fuzzer']
git_fs_path_dirname_r 47 25 53.19% ['revparse_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
git_fs_path_owner_is 34 11 32.35% ['revparse_fuzzer', 'download_refs_fuzzer']
mkdir_validate_dir 33 8 24.24% ['revparse_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
git_mwindow_packmap__put_idx 62 31 50.0% ['revparse_fuzzer', 'download_refs_fuzzer']
git_mwindow_packmap__resize 97 44 45.36% ['revparse_fuzzer', 'download_refs_fuzzer']
git_sortedcache_lockandload 33 9 27.27% ['revparse_fuzzer', 'download_refs_fuzzer']
binsearch 35 17 48.57% ['revparse_fuzzer', 'config_file_fuzzer', 'download_refs_fuzzer', 'packfile_fuzzer']
dowild 181 50 27.62% ['revparse_fuzzer', 'download_refs_fuzzer']
match 2322 246 10.59% ['revparse_fuzzer']
odb_read_1 53 24 45.28% ['revparse_fuzzer', 'packfile_fuzzer']
read_prefix_1 71 25 35.21% ['revparse_fuzzer']
locate_object_short_oid 47 17 36.17% ['revparse_fuzzer']
pack_entry_find_prefix 52 16 30.76% ['revparse_fuzzer']
packed_lookup 60 7 11.66% ['revparse_fuzzer']
packed_map_check 47 16 34.04% ['revparse_fuzzer']
reflog_parse 40 6 15.0% ['revparse_fuzzer']
retrieve_previously_checked_out_branch_or_revision 47 25 53.19% ['revparse_fuzzer']

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/libgit2/src/libgit2/index_map.c [] []
/src/libgit2/src/libgit2/config_snapshot.c [] []
/src/libgit2/src/libgit2/branch.c ['revparse_fuzzer'] []
/src/libgit2/src/libgit2/merge_driver.c [] []
/src/libgit2/src/util/hash/sha1dc/ubc_check.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/deps/xdiff/xutils.c [] []
/src/libgit2/src/libgit2/odb_loose.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/config_cache.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/build/../fuzzers/patch_parse_fuzzer.c ['patch_parse_fuzzer'] []
/src/libgit2/src/libgit2/reflog.h ['revparse_fuzzer'] []
/src/libgit2/src/util/runtime.c ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/unix/pthread.h [] []
/src/libgit2/src/libgit2/transports/auth.c [] []
/src/libgit2/build/../fuzzers/revparse_fuzzer.c ['revparse_fuzzer'] []
/src/libgit2/src/libgit2/path.c [] []
/src/libgit2/src/libgit2/blob.c [] []
/src/libgit2/src/libgit2/transports/credential.c [] []
/src/libgit2/src/libgit2/libgit2.c [] []
/src/libgit2/src/util/errors.h ['config_file_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] []
/src/libgit2/src/libgit2/hashsig.c [] []
/src/libgit2/src/libgit2/iterator.c [] []
/src/libgit2/deps/xdiff/xpatience.c [] []
/src/libgit2/deps/llhttp/api.c [] []
/src/libgit2/build/../fuzzers/packfile_fuzzer.c ['packfile_fuzzer'] []
/src/libgit2/src/libgit2/signature.c ['revparse_fuzzer'] []
/src/libgit2/src/libgit2/diff_driver.c [] []
/src/libgit2/src/util/alloc.c ['patch_parse_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/diff_tform.c [] []
/src/libgit2/src/libgit2/worktree.c [] []
/src/libgit2/src/libgit2/transports/smart.c [] []
/src/libgit2/src/libgit2/ignore.c [] []
/src/libgit2/deps/zlib/inflate.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/src/util/sortedcache.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/deps/xdiff/xmerge.c [] []
/src/libgit2/src/libgit2/patch_generate.c [] []
/src/libgit2/src/util/str.c ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/varint.c [] []
/src/libgit2/src/libgit2/transports/httpparser.c [] []
/src/libgit2/src/libgit2/trace.h [] []
/src/libgit2/src/libgit2/refdb_fs.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/util/array.h ['patch_parse_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/revparse.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/refspec.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/util/futils.c ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/merge.c [] []
/src/libgit2/src/libgit2/transports/http.c [] []
/src/libgit2/deps/xdiff/git-xdiff.h [] []
/src/libgit2/src/libgit2/diff.c [] []
/src/libgit2/src/libgit2/config_parse.c [] []
/src/libgit2/deps/zlib/adler32.c ['packfile_fuzzer', 'download_refs_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/util/pool.c ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/net.c [] []
/src/libgit2/src/libgit2/transports/local.c [] []
/src/libgit2/src/libgit2/proxy.c ['download_refs_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/libgit2/diff_generate.c [] []
/src/libgit2/src/libgit2/index.h [] []
/src/libgit2/src/util/vector.h ['midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/fetchhead.c [] []
/src/libgit2/src/util/allocators/failalloc.c [] []
/src/libgit2/src/libgit2/transports/smart_protocol.c [] []
/src/libgit2/src/libgit2/mwindow.c ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/thread.h ['patch_parse_fuzzer', 'config_file_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'config_file_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/tsort.c ['config_file_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['config_file_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/deps/zlib/inffast.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/src/util/strlist.c [] []
/src/libgit2/src/util/thread.c ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/pool.h [] []
/src/libgit2/src/libgit2/transaction.c [] []
/src/libgit2/src/libgit2/transports/httpclient.c [] []
/src/libgit2/src/libgit2/streams/mbedtls.c [] []
/src/libgit2/build/../fuzzers/download_refs_fuzzer.c ['download_refs_fuzzer'] []
/src/libgit2/src/libgit2/config.c ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/alloc.h ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/oid.c ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/vector.c ['config_file_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['config_file_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/object_api.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/deps/pcre/pcre_compile.c ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/refdb.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/util/hash/rfc6234/sha224-256.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/config_backend.h [] []
/src/libgit2/src/libgit2/tree.h ['revparse_fuzzer'] []
/src/libgit2/src/util/hash.h ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/src/libgit2/revwalk.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/submodule.c [] []
/src/libgit2/deps/zlib/trees.c ['packfile_fuzzer', 'download_refs_fuzzer'] []
/src/libgit2/src/util/wildmatch.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/libgit2/parse.c ['patch_parse_fuzzer', 'download_refs_fuzzer'] ['patch_parse_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/libgit2/commit_list.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/oidarray.c ['download_refs_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/libgit2/config_mem.c ['config_file_fuzzer'] ['config_file_fuzzer']
/src/libgit2/src/libgit2/transports/ssh_libssh2.c [] []
/src/libgit2/src/libgit2/filter.c [] []
/src/libgit2/src/libgit2/streams/tls.c [] []
/src/libgit2/src/libgit2/patch_parse.c ['patch_parse_fuzzer'] ['patch_parse_fuzzer']
/src/libgit2/src/libgit2/indexer.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/deps/llhttp/http.c [] []
/src/libgit2/src/libgit2/delta.c ['packfile_fuzzer'] []
/src/libgit2/src/libgit2/object.c ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/deps/zlib/inftrees.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/deps/pcre/pcre_exec.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/midx.c ['midx_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['midx_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/transport.c ['download_refs_fuzzer'] []
/src/libgit2/src/util/regexp.c ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/trace.c [] []
/src/libgit2/deps/zlib/deflate.c ['packfile_fuzzer', 'download_refs_fuzzer'] []
/src/libgit2/src/libgit2/crlf.c [] []
/src/libgit2/src/libgit2/tree.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/diff_stats.c [] []
/src/libgit2/src/libgit2/diff_xdiff.c [] []
/src/libgit2/src/libgit2/odb.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/attrcache.c [] []
/src/libgit2/src/util/posix.c ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/odb_mempack.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/src/libgit2/buf.c ['download_refs_fuzzer'] []
/src/libgit2/src/util/unix/map.c ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/commit_graph.c ['commit_graph_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/config_file.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/transports/smart_pkt.c [] []
/src/libgit2/src/libgit2/patch.c ['patch_parse_fuzzer'] ['patch_parse_fuzzer']
/src/libgit2/src/libgit2/checkout.c [] []
/src/libgit2/src/libgit2/oid.h ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/commit.c ['revparse_fuzzer'] []
/src/libgit2/src/libgit2/merge.h [] []
/src/libgit2/src/libgit2/diff_file.c [] []
/src/libgit2/src/util/hashmap_str.h ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/util/filebuf.h ['packfile_fuzzer', 'download_refs_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/util/pqueue.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/deps/zlib/zutil.c [] []
/src/libgit2/build/../fuzzers/midx_fuzzer.c ['midx_fuzzer'] []
/src/libgit2/src/libgit2/graph.c [] []
/src/libgit2/src/util/util.h ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/streams/openssl.c [] []
/src/libgit2/src/libgit2/stream.h [] []
/src/libgit2/src/libgit2/clone.c [] []
/src/libgit2/src/libgit2/email.c [] []
/src/libgit2/src/util/allocators/stdalloc.c [] []
/src/libgit2/src/util/unix/posix.h ['packfile_fuzzer', 'download_refs_fuzzer'] []
/src/libgit2/deps/xdiff/xhistogram.c [] []
/src/libgit2/deps/zlib/crc32.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/src/libgit2/ident.c [] []
/src/libgit2/build/../fuzzers/objects_fuzzer.c ['objects_fuzzer'] []
/src/libgit2/src/libgit2/tree-cache.c [] []
/src/libgit2/src/libgit2/diff_generate.h [] []
/src/libgit2/src/util/hash/collisiondetect.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/transports/git.c [] []
/src/libgit2/deps/pcre/pcre_newline.c ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/reflog.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/libgit2/tag.c ['revparse_fuzzer'] []
/src/libgit2/src/util/date.c ['revparse_fuzzer'] ['revparse_fuzzer']
/src/libgit2/src/util/unix/realpath.c [] []
/src/libgit2/src/libgit2/common.h ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['config_file_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/deps/xdiff/xemit.c [] []
/src/libgit2/src/libgit2/refs.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/streams/socket.c [] []
/src/libgit2/src/libgit2/diff_print.c [] []
/src/libgit2/src/libgit2/mailmap.c [] []
/src/libgit2/src/libgit2/remote.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/libgit2/path.h [] []
/src/libgit2/src/libgit2/sysdir.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/pack.c ['commit_graph_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/libgit2/remote.h ['download_refs_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/libgit2/hashmap_oid.h ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/util/integer.h ['patch_parse_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/repository.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/repository.h [] []
/src/libgit2/build/../fuzzers/config_file_fuzzer.c ['config_file_fuzzer'] []
/src/libgit2/src/libgit2/streams/registry.c [] []
/src/libgit2/build/../fuzzers/fuzzer_utils.c ['download_refs_fuzzer'] []
/src/libgit2/src/libgit2/index.c [] []
/src/libgit2/src/libgit2/pack-objects.c [] []
/src/libgit2/src/libgit2/odb_pack.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/iterator.h [] []
/src/libgit2/src/util/hash.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/parse.h ['patch_parse_fuzzer'] ['patch_parse_fuzzer']
/src/libgit2/src/util/zstream.c ['packfile_fuzzer'] ['packfile_fuzzer']
/src/libgit2/build/../fuzzers/commit_graph_fuzzer.c ['commit_graph_fuzzer'] []
/src/libgit2/src/util/fs_path.c ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/grafts.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/delta.h [] []
/src/libgit2/src/libgit2/push.c ['download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/util/rand.c ['packfile_fuzzer', 'download_refs_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/libgit2/annotated_commit.c [] []
/src/libgit2/src/util/bitvec.h [] []
/src/libgit2/src/libgit2/pathspec.c [] []
/src/libgit2/src/util/util.c ['patch_parse_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/attr.c [] []
/src/libgit2/src/libgit2/settings.c [] []
/src/libgit2/src/libgit2/attr_file.c [] []
/src/libgit2/src/util/utf8.c [] []
/src/libgit2/src/libgit2/config_list.c ['config_file_fuzzer'] ['config_file_fuzzer']
/src/libgit2/src/libgit2/merge_file.c [] []
/src/libgit2/src/libgit2/cache.c ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/strarray.c ['download_refs_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/util/hash/sha1dc/sha1.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/util/str.h ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/cache.h ['objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['objects_fuzzer']
/src/libgit2/src/util/hash/builtin.c ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['commit_graph_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/src/libgit2/fetch.c ['download_refs_fuzzer'] ['download_refs_fuzzer']
/src/libgit2/src/util/filebuf.c ['packfile_fuzzer', 'download_refs_fuzzer'] ['packfile_fuzzer', 'download_refs_fuzzer']
/src/libgit2/src/libgit2/object.h [] []
/src/libgit2/src/util/errors.c ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['patch_parse_fuzzer', 'commit_graph_fuzzer', 'config_file_fuzzer', 'midx_fuzzer', 'objects_fuzzer', 'packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer']
/src/libgit2/deps/xdiff/xprepare.c [] []
/src/libgit2/deps/llhttp/llhttp.c [] []
/src/libgit2/deps/xdiff/xdiffi.c [] []
/src/libgit2/src/util/fs_path.h ['packfile_fuzzer', 'download_refs_fuzzer', 'revparse_fuzzer'] ['download_refs_fuzzer', 'revparse_fuzzer']

Directories in report

Directory
/src/libgit2/src/util/allocators/
/src/libgit2/src/util/hash/sha1dc/
/src/libgit2/src/util/unix/
/src/libgit2/src/libgit2/transports/
/src/libgit2/src/libgit2/
/src/libgit2/deps/xdiff/
/src/libgit2/build/../fuzzers/
/src/libgit2/src/libgit2/streams/
/src/libgit2/deps/zlib/
/src/libgit2/deps/pcre/
/src/libgit2/deps/llhttp/
/src/libgit2/src/util/hash/
/src/libgit2/src/util/hash/rfc6234/
/src/libgit2/src/util/