Fuzz introspector: objects_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
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
111 111 1 :

['git_error_set_oom']

111 111 git_str_try_grow call site: 00010 /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: 00026 /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
2 2 1 :

['memchr']

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

['git_str_put']

4 347 git_error_vset call site: 00017 /src/libgit2/src/libgit2/errors.c:110
0 110 1 :

['git_error_set']

0 110 git_odb__format_object_header call site: 00055 /src/libgit2/src/libgit2/odb.c:99
0 110 1 :

['git_error_set']

0 110 git_odb__hashobj call site: 00051 /src/libgit2/src/libgit2/odb.c:129

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 git_object__from_raw [function] [call site] 00001
2 git_error_set [function] [call site] 00002
3 git_error_vset [function] [call site] 00003
4 git_threadstate_get [function] [call site] 00004
5 git_tlsdata_get [function] [call site] 00005
6 pthread_getspecific [call site] 00006
5 git_str_init [function] [call site] 00007
6 git_str_grow [function] [call site] 00008
7 git_str_try_grow [function] [call site] 00009
8 git_error_set [function] [call site] 00010
8 git_error_set_oom [function] [call site] 00011
9 git_threadstate_get [function] [call site] 00012
10 git_tlsdata_set [function] [call site] 00013
11 pthread_setspecific [call site] 00014
4 __errno_location [call site] 00015
4 git_str_clear [function] [call site] 00016
4 git_str_vprintf [function] [call site] 00017
5 strlen [call site] 00018
5 git_error_set_oom [function] [call site] 00019
5 git_error_set_oom [function] [call site] 00020
5 git_str_grow [function] [call site] 00021
5 vsnprintf [call site] 00022
5 git_error_set_oom [function] [call site] 00023
5 git_error_set_oom [function] [call site] 00024
5 git_str_grow [function] [call site] 00025
4 git_str_put [function] [call site] 00026
5 git_error_set [function] [call site] 00027
5 git_error_set_oom [function] [call site] 00028
5 git_error_set_oom [function] [call site] 00029
5 git_str_grow [function] [call site] 00030
4 strerror [call site] 00031
4 git_str_puts [function] [call site] 00032
5 git_error_set [function] [call site] 00033
5 strlen [call site] 00034
5 git_str_put [function] [call site] 00035
4 __errno_location [call site] 00036
4 git_str_oom [function] [call site] 00037
4 set_error_from_buffer [function] [call site] 00038
5 git_threadstate_get [function] [call site] 00039
2 git_error_set [function] [call site] 00040
2 git_object__size [function] [call site] 00041
2 git_error_set [function] [call site] 00042
2 git_odb__hash [function] [call site] 00043
3 git_error_set [function] [call site] 00044
3 git_odb__hashobj [function] [call site] 00045
4 git_error_set [function] [call site] 00046
4 git_error_set [function] [call site] 00047
4 git_object_typeisloose [function] [call site] 00048
4 git_error_set [function] [call site] 00049
4 git_oid_algorithm [function] [call site] 00050
4 git_error_set [function] [call site] 00051
4 git_error_set [function] [call site] 00052
4 git_odb__format_object_header [function] [call site] 00053
5 git_object_type2string [function] [call site] 00054
5 snprintf [call site] 00055
5 git_error_set [function] [call site] 00056
4 git_hash_vec [function] [call site] 00057
5 git_hash_ctx_init [function] [call site] 00058
6 git_hash_sha1_ctx_init [function] [call site] 00059
7 git_hash_sha1_init [function] [call site] 00060
8 git_error_set [function] [call site] 00061
8 SHA1DCInit [function] [call site] 00062
6 git_hash_sha256_ctx_init [function] [call site] 00063
7 git_hash_sha256_init [function] [call site] 00064
8 SHA256Reset [function] [call site] 00065
9 SHA224_256Reset [function] [call site] 00066
8 git_error_set [function] [call site] 00067
6 git_error_set [function] [call site] 00068
5 git_hash_update [function] [call site] 00069
6 git_hash_sha1_update [function] [call site] 00070
7 git_error_set [function] [call site] 00071
7 SHA1DCUpdate [function] [call site] 00072
8 sha1_process [function] [call site] 00073
9 sha1_compression_states [function] [call site] 00074
9 ubc_check [function] [call site] 00075
9 sha1_recompression_step [function] [call site] 00076
10 sha1recompress_fast_58 [function] [call site] 00077
10 sha1recompress_fast_65 [function] [call site] 00078
10 abort [call site] 00079
9 sha1_compression_W [function] [call site] 00080
9 sha1_compression_W [function] [call site] 00081
8 sha1_process [function] [call site] 00082
6 git_hash_sha256_update [function] [call site] 00083
7 git_error_set [function] [call site] 00084
7 SHA256Input [function] [call site] 00085
8 SHA224_256ProcessMessageBlock [function] [call site] 00086
7 git_error_set [function] [call site] 00087
5 git_hash_final [function] [call site] 00088
6 git_hash_sha1_final [function] [call site] 00089
7 git_error_set [function] [call site] 00090
7 SHA1DCFinal [function] [call site] 00091
8 SHA1DCUpdate [function] [call site] 00092
8 sha1_process [function] [call site] 00093
7 git_error_set [function] [call site] 00094
6 git_hash_sha256_final [function] [call site] 00095
7 git_error_set [function] [call site] 00096
7 SHA256Result [function] [call site] 00097
8 SHA224_256ResultN [function] [call site] 00098
9 SHA224_256Finalize [function] [call site] 00099
10 SHA224_256PadMessage [function] [call site] 00100
11 SHA224_256ProcessMessageBlock [function] [call site] 00101
11 SHA224_256ProcessMessageBlock [function] [call site] 00102
7 git_error_set [function] [call site] 00103
6 git_error_set [function] [call site] 00104
5 git_hash_ctx_cleanup [function] [call site] 00105
6 git_hash_sha1_ctx_cleanup [function] [call site] 00106
6 git_hash_sha256_ctx_cleanup [function] [call site] 00107
2 git_error_set [function] [call site] 00108
2 git_cached_obj_incref [function] [call site] 00109
3 git_atomic32_inc [function] [call site] 00110
1 git_object_free [function] [call site] 00111
2 git_cached_obj_decref [function] [call site] 00112
3 git_atomic32_dec [function] [call site] 00113
3 git_odb_object__free [function] [call site] 00114
3 git_object__free [function] [call site] 00115