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
750 750 6 :

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

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 :

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

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 :

['strerror', 'git_str_puts', '__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_error_set', 'git_atomic32_dec']

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

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 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__free [function] [call site] 00011
8 git_error_set_oom [function] [call site] 00012
9 threadstate_get [function] [call site] 00013
10 git_tlsdata_set [function] [call site] 00014
11 pthread_setspecific [call site] 00015
8 git__realloc [function] [call site] 00016
9 git_error_set_oom [function] [call site] 00017
8 git__free [function] [call site] 00018
4 __errno_location [call site] 00019
4 git_str_clear [function] [call site] 00020
4 git_str_vprintf [function] [call site] 00021
5 strlen [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
5 vsnprintf [call site] 00026
5 git__free [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 git_str_put [function] [call site] 00031
5 git_error_set [function] [call site] 00032
5 git_error_set_oom [function] [call site] 00033
5 git_error_set_oom [function] [call site] 00034
5 git_str_grow [function] [call site] 00035
4 strerror [call site] 00036
4 git_str_puts [function] [call site] 00037
5 git_error_set [function] [call site] 00038
5 strlen [call site] 00039
5 git_str_put [function] [call site] 00040
4 __errno_location [call site] 00041
4 git_str_oom [function] [call site] 00042
4 set_error_from_buffer [function] [call site] 00043
5 threadstate_get [function] [call site] 00044
2 git_error_set [function] [call site] 00045
2 git_object__size [function] [call site] 00046
2 git_error_set [function] [call site] 00047
2 git__calloc [function] [call site] 00048
3 git_error_set_oom [function] [call site] 00049
3 git__malloc [function] [call site] 00050
4 git_error_set_oom [function] [call site] 00051
2 git_odb__hash [function] [call site] 00052
3 git_error_set [function] [call site] 00053
3 git_odb__hashobj [function] [call site] 00054
4 git_error_set [function] [call site] 00055
4 git_error_set [function] [call site] 00056
4 git_object_type_is_valid [function] [call site] 00057
4 git_error_set [function] [call site] 00058
4 git_oid_algorithm [function] [call site] 00059
4 git_error_set [function] [call site] 00060
4 git_error_set [function] [call site] 00061
4 git_odb__format_object_header [function] [call site] 00062
5 git_object_type2string [function] [call site] 00063
5 snprintf [call site] 00064
5 git_error_set [function] [call site] 00065
4 git_hash_vec [function] [call site] 00066
5 git_hash_ctx_init [function] [call site] 00067
6 git_hash_sha1_ctx_init [function] [call site] 00068
7 git_hash_sha1_init [function] [call site] 00069
8 git_error_set [function] [call site] 00070
8 SHA1DCInit [function] [call site] 00071
6 git_hash_sha256_ctx_init [function] [call site] 00072
7 git_hash_sha256_init [function] [call site] 00073
8 SHA256Reset [function] [call site] 00074
9 SHA224_256Reset [function] [call site] 00075
8 git_error_set [function] [call site] 00076
6 git_error_set [function] [call site] 00077
5 git_hash_update [function] [call site] 00078
6 git_hash_sha1_update [function] [call site] 00079
7 git_error_set [function] [call site] 00080
7 SHA1DCUpdate [function] [call site] 00081
8 sha1_process [function] [call site] 00082
9 sha1_compression_states [function] [call site] 00083
9 ubc_check [function] [call site] 00084
9 sha1_recompression_step [function] [call site] 00085
10 sha1recompress_fast_58 [function] [call site] 00086
10 sha1recompress_fast_65 [function] [call site] 00087
10 abort [call site] 00088
9 sha1_compression_W [function] [call site] 00089
9 sha1_compression_W [function] [call site] 00090
8 sha1_process [function] [call site] 00091
6 git_hash_sha256_update [function] [call site] 00092
7 git_error_set [function] [call site] 00093
7 SHA256Input [function] [call site] 00094
8 SHA224_256ProcessMessageBlock [function] [call site] 00095
7 git_error_set [function] [call site] 00096
6 git_error_set [function] [call site] 00097
5 git_hash_final [function] [call site] 00098
6 git_hash_sha1_final [function] [call site] 00099
7 git_error_set [function] [call site] 00100
7 SHA1DCFinal [function] [call site] 00101
8 SHA1DCUpdate [function] [call site] 00102
8 sha1_process [function] [call site] 00103
7 git_error_set [function] [call site] 00104
6 git_hash_sha256_final [function] [call site] 00105
7 git_error_set [function] [call site] 00106
7 SHA256Result [function] [call site] 00107
8 SHA224_256ResultN [function] [call site] 00108
9 SHA224_256Finalize [function] [call site] 00109
10 SHA224_256PadMessage [function] [call site] 00110
11 SHA224_256ProcessMessageBlock [function] [call site] 00111
11 SHA224_256ProcessMessageBlock [function] [call site] 00112
7 git_error_set [function] [call site] 00113
6 git_error_set [function] [call site] 00114
5 git_hash_ctx_cleanup [function] [call site] 00115
6 git_hash_sha1_ctx_cleanup [function] [call site] 00116
6 git_hash_sha256_ctx_cleanup [function] [call site] 00117
2 git_error_set [function] [call site] 00118
2 git_cached_obj_incref [function] [call site] 00119
3 git_atomic32_inc [function] [call site] 00120
1 git_object_free [function] [call site] 00121
2 git_cached_obj_decref [function] [call site] 00122
3 git_atomic32_dec [function] [call site] 00123
3 git_odb_object__free [function] [call site] 00124
3 git_object__free [function] [call site] 00127
4 git__free [function] [call site] 00128
3 git__free [function] [call site] 00129