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

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
233 233 2 :

['commit_graph_parse_commit_data', 'commit_graph_parse_extra_edge_list']

233 233 git_commit_graph_file_parse call site: 00119 /src/libgit2/src/libgit2/commit_graph.c:292
222 332 2 :

['git_str_grow', 'git_error_set_oom']

222 332 git_str_vprintf call site: 00020 /src/libgit2/src/util/str.c:529
160 160 5 :

['compute_minrun', 'check_invariant', 'collapse', 'count_run', 'merge']

160 220 git__tsort_r call site: 00000 /src/libgit2/src/util/tsort.c:346
121 121 1 :

['get_passwd_home']

236 350 git_sysdir_guess_xdg_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:401
121 121 1 :

['get_passwd_home']

236 236 git_sysdir_guess_home_dirs call site: 00000 /src/libgit2/src/libgit2/sysdir.c:356
115 115 1 :

['git_futils_mmap_free']

115 115 git_commit_graph_file_close call site: 00174 /src/libgit2/src/libgit2/commit_graph.c:655
111 111 1 :

['git_error_set_oom']

111 111 git_str_try_grow call site: 00004 /src/libgit2/src/util/str.c:75
18 128 11 :

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

18 128 getseed call site: 00000 /src/libgit2/src/util/rand.c:93
7 7 1 :

['git_vector_free_deep']

7 7 git_merge_driver_global_init call site: 00000 /src/libgit2/src/libgit2/merge_driver.c:220
4 115 3 :

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

4 226 git_error_vset call site: 00024 /src/libgit2/src/libgit2/errors.c:114
4 4 1 :

['git_filter_free']

4 4 git_filter_global_init call site: 00000 /src/libgit2/src/libgit2/filter.c:215
0 121 1 :

['git_str_put']

4 347 git_error_vset call site: 00014 /src/libgit2/src/libgit2/errors.c:110

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 git_str_init [function] [call site] 00001
2 git_str_grow [function] [call site] 00002
3 git_str_try_grow [function] [call site] 00003
4 git_error_set [function] [call site] 00004
5 git_error_vset [function] [call site] 00005
6 git_threadstate_get [function] [call site] 00006
7 git_tlsdata_get [function] [call site] 00007
8 pthread_getspecific [call site] 00008
7 git_str_init [function] [call site] 00009
7 git_tlsdata_set [function] [call site] 00010
8 pthread_setspecific [call site] 00011
6 __errno_location [call site] 00012
6 git_str_clear [function] [call site] 00013
6 git_str_vprintf [function] [call site] 00014
7 strlen [call site] 00015
7 git_error_set_oom [function] [call site] 00016
8 git_threadstate_get [function] [call site] 00017
7 git_error_set_oom [function] [call site] 00018
7 git_str_grow [function] [call site] 00019
7 vsnprintf [call site] 00020
7 git_error_set_oom [function] [call site] 00021
7 git_error_set_oom [function] [call site] 00022
7 git_str_grow [function] [call site] 00023
6 git_str_put [function] [call site] 00024
7 git_error_set [function] [call site] 00025
7 git_error_set_oom [function] [call site] 00026
7 git_error_set_oom [function] [call site] 00027
7 git_str_grow [function] [call site] 00028
6 strerror [call site] 00029
6 git_str_puts [function] [call site] 00030
7 git_error_set [function] [call site] 00031
7 strlen [call site] 00032
7 git_str_put [function] [call site] 00033
6 __errno_location [call site] 00034
6 git_str_oom [function] [call site] 00035
6 set_error_from_buffer [function] [call site] 00036
7 git_threadstate_get [function] [call site] 00037
4 git_error_set_oom [function] [call site] 00038
1 git_hash_buf [function] [call site] 00039
2 git_hash_ctx_init [function] [call site] 00040
3 git_hash_sha1_ctx_init [function] [call site] 00041
4 git_hash_sha1_init [function] [call site] 00042
5 git_error_set [function] [call site] 00043
5 SHA1DCInit [function] [call site] 00044
3 git_hash_sha256_ctx_init [function] [call site] 00045
4 git_hash_sha256_init [function] [call site] 00046
5 SHA256Reset [function] [call site] 00047
6 SHA224_256Reset [function] [call site] 00048
5 git_error_set [function] [call site] 00049
3 git_error_set [function] [call site] 00050
2 git_hash_update [function] [call site] 00051
3 git_hash_sha1_update [function] [call site] 00052
4 git_error_set [function] [call site] 00053
4 SHA1DCUpdate [function] [call site] 00054
5 sha1_process [function] [call site] 00055
6 sha1_compression_states [function] [call site] 00056
6 ubc_check [function] [call site] 00057
6 sha1_recompression_step [function] [call site] 00058
7 sha1recompress_fast_58 [function] [call site] 00059
7 sha1recompress_fast_65 [function] [call site] 00060
7 abort [call site] 00061
6 sha1_compression_W [function] [call site] 00062
6 sha1_compression_W [function] [call site] 00063
5 sha1_process [function] [call site] 00064
3 git_hash_sha256_update [function] [call site] 00065
4 git_error_set [function] [call site] 00066
4 SHA256Input [function] [call site] 00067
5 SHA224_256ProcessMessageBlock [function] [call site] 00068
4 git_error_set [function] [call site] 00069
3 git_error_set [function] [call site] 00070
2 git_hash_final [function] [call site] 00071
3 git_hash_sha1_final [function] [call site] 00072
4 git_error_set [function] [call site] 00073
4 SHA1DCFinal [function] [call site] 00074
5 SHA1DCUpdate [function] [call site] 00075
5 sha1_process [function] [call site] 00076
4 git_error_set [function] [call site] 00077
3 git_hash_sha256_final [function] [call site] 00078
4 git_error_set [function] [call site] 00079
4 SHA256Result [function] [call site] 00080
5 SHA224_256ResultN [function] [call site] 00081
6 SHA224_256Finalize [function] [call site] 00082
7 SHA224_256PadMessage [function] [call site] 00083
8 SHA224_256ProcessMessageBlock [function] [call site] 00084
8 SHA224_256ProcessMessageBlock [function] [call site] 00085
4 git_error_set [function] [call site] 00086
3 git_error_set [function] [call site] 00087
2 git_hash_ctx_cleanup [function] [call site] 00088
3 git_hash_sha1_ctx_cleanup [function] [call site] 00089
3 git_hash_sha256_ctx_cleanup [function] [call site] 00090
1 fprintf [call site] 00091
1 abort [call site] 00092
1 git_str_attach_notowned [function] [call site] 00093
2 git_str_is_allocated [function] [call site] 00094
2 git_str_dispose [function] [call site] 00095
3 git_str_init [function] [call site] 00096
2 git_str_init [function] [call site] 00097
1 git_str_cstr [function] [call site] 00098
1 git_str_len [function] [call site] 00099
1 git_commit_graph_file_parse [function] [call site] 00100
2 git_oid_size [function] [call site] 00101
2 commit_graph_error [function] [call site] 00102
3 git_error_set [function] [call site] 00103
2 htonl [call site] 00104
2 commit_graph_error [function] [call site] 00105
2 commit_graph_error [function] [call site] 00106
2 commit_graph_error [function] [call site] 00107
2 ntohl [call site] 00108
2 ntohl [call site] 00109
2 commit_graph_error [function] [call site] 00110
2 commit_graph_error [function] [call site] 00111
2 ntohl [call site] 00112
2 commit_graph_error [function] [call site] 00113
2 commit_graph_parse_oid_fanout [function] [call site] 00114
3 commit_graph_error [function] [call site] 00115
3 commit_graph_error [function] [call site] 00116
3 commit_graph_error [function] [call site] 00117
3 commit_graph_error [function] [call site] 00118
2 commit_graph_parse_oid_lookup [function] [call site] 00119
3 git_oid_size [function] [call site] 00120
3 commit_graph_error [function] [call site] 00121
3 commit_graph_error [function] [call site] 00122
3 commit_graph_error [function] [call site] 00123
3 git_oid_raw_cmp [function] [call site] 00124
4 memcmp [call site] 00125
3 commit_graph_error [function] [call site] 00126
2 commit_graph_parse_commit_data [function] [call site] 00127
3 git_oid_size [function] [call site] 00128
3 commit_graph_error [function] [call site] 00129
3 commit_graph_error [function] [call site] 00130
3 commit_graph_error [function] [call site] 00131
2 commit_graph_parse_extra_edge_list [function] [call site] 00132
3 commit_graph_error [function] [call site] 00133
1 git_commit_graph_entry_find [function] [call site] 00134
2 git_error_set [function] [call site] 00135
2 git_error_set [function] [call site] 00136
2 git_error_set [function] [call site] 00137
2 git_oid_size [function] [call site] 00138
2 git_oid_hexsize [function] [call site] 00139
2 ntohl [call site] 00140
2 ntohl [call site] 00141
2 git_pack__lookup_id [function] [call site] 00142
3 git_oid_size [function] [call site] 00143
3 git_oid_raw_cmp [function] [call site] 00144
2 git_oid_raw_ncmp [function] [call site] 00145
2 git_oid_raw_ncmp [function] [call site] 00146
2 git_odb__error_notfound [function] [call site] 00147
3 git_oid_tostr [function] [call site] 00148
4 git_oid_type [function] [call site] 00149
4 git_oid_nfmt [function] [call site] 00150
5 git_oid_type [function] [call site] 00151
5 oid_error_invalid [function] [call site] 00152
5 git_oid_fmt_substr [function] [call site] 00153
3 git_error_set [function] [call site] 00154
3 git_error_set [function] [call site] 00155
2 git_odb__error_ambiguous [function] [call site] 00156
3 git_error_set [function] [call site] 00157
2 git_commit_graph_entry_get_byindex [function] [call site] 00158
3 git_oid_size [function] [call site] 00159
3 git_error_set [function] [call site] 00160
3 git_error_set [function] [call site] 00161
3 git_error_set [function] [call site] 00162
3 git_oid__fromraw [function] [call site] 00163
4 git_oid_size [function] [call site] 00164
4 oid_error_invalid [function] [call site] 00165
3 ntohl [call site] 00166
3 ntohl [call site] 00167
3 ntohl [call site] 00168
3 ntohl [call site] 00169
3 git_error_set [function] [call site] 00170
3 ntohl [call site] 00171
3 git_oid__fromraw [function] [call site] 00172
1 git_commit_graph_file_close [function] [call site] 00173
2 git_error_set [function] [call site] 00174
2 git_futils_mmap_free [function] [call site] 00175
3 p_munmap [function] [call site] 00176
4 git_error_set [function] [call site] 00177
4 munmap [call site] 00178
1 git_str_dispose [function] [call site] 00179