Fuzz introspector: patch_parse_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
226 339 3 :

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

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 :

['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: 00028 /src/libgit2/src/util/errors.c:205
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
0 115 1 :

['git_parse_err']

0 115 parse_hunk_body call site: 00190 /src/libgit2/src/libgit2/patch_parse.c:689

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 git_patch_from_buffer [function] [call site] 00001
2 git_patch_parse_ctx_init [function] [call site] 00002
3 git__calloc [function] [call site] 00003
4 git_error_set_oom [function] [call site] 00004
5 threadstate_get [function] [call site] 00005
6 git_tlsdata_get [function] [call site] 00006
7 pthread_getspecific [call site] 00007
6 git_str_init [function] [call site] 00008
7 git_str_grow [function] [call site] 00009
8 git_str_try_grow [function] [call site] 00010
9 git_error_set [function] [call site] 00011
10 git_error_vset [function] [call site] 00012
11 threadstate_get [function] [call site] 00013
12 git_tlsdata_set [function] [call site] 00014
13 pthread_setspecific [call site] 00015
11 __errno_location [call site] 00016
11 git_str_clear [function] [call site] 00017
11 git_str_vprintf [function] [call site] 00018
12 strlen [call site] 00019
12 git_error_set_oom [function] [call site] 00020
12 git_error_set_oom [function] [call site] 00021
12 git_str_grow [function] [call site] 00022
12 vsnprintf [call site] 00023
12 git__free [function] [call site] 00024
12 git_error_set_oom [function] [call site] 00025
12 git_error_set_oom [function] [call site] 00026
12 git_str_grow [function] [call site] 00027
11 git_str_put [function] [call site] 00028
12 git_error_set [function] [call site] 00029
12 git_error_set_oom [function] [call site] 00030
12 git_error_set_oom [function] [call site] 00031
12 git_str_grow [function] [call site] 00032
11 strerror [call site] 00033
11 git_str_puts [function] [call site] 00034
12 git_error_set [function] [call site] 00035
12 strlen [call site] 00036
12 git_str_put [function] [call site] 00037
11 __errno_location [call site] 00038
11 git_str_oom [function] [call site] 00039
11 set_error_from_buffer [function] [call site] 00040
12 threadstate_get [function] [call site] 00041
9 git__free [function] [call site] 00042
9 git_error_set_oom [function] [call site] 00043
9 git__realloc [function] [call site] 00044
10 git_error_set_oom [function] [call site] 00045
9 git__free [function] [call site] 00046
4 git__malloc [function] [call site] 00047
5 git_error_set_oom [function] [call site] 00048
3 git_parse_ctx_init [function] [call site] 00049
4 git__linenlen [function] [call site] 00050
5 memchr [call site] 00051
3 git__free [function] [call site] 00052
3 git_atomic32_inc [function] [call site] 00053
2 git_patch_parse [function] [call site] 00054
3 git_error_set [function] [call site] 00055
3 git_error_set [function] [call site] 00056
3 git__calloc [function] [call site] 00057
3 git_atomic32_inc [function] [call site] 00058
3 git__calloc [function] [call site] 00059
3 parse_patch_header [function] [call site] 00060
4 git_parse_ctx_contains [function] [call site] 00061
5 memcmp [call site] 00062
4 parse_hunk_header [function] [call site] 00063
5 git_parse_advance_expected [function] [call site] 00064
6 memcmp [call site] 00065
6 git_parse_advance_chars [function] [call site] 00066
5 parse_int [function] [call site] 00067
6 git_parse_advance_digit [function] [call site] 00068
7 __ctype_b_loc [call site] 00069
7 git__strntol64 [function] [call site] 00070
8 __ctype_b_loc [call site] 00071
8 git_error_set [function] [call site] 00072
8 git_error_set [function] [call site] 00073
7 git_parse_advance_chars [function] [call site] 00074
6 git__is_int [function] [call site] 00075
5 git_parse_peek [function] [call site] 00076
6 __ctype_b_loc [call site] 00077
5 git_parse_advance_expected [function] [call site] 00078
5 parse_int [function] [call site] 00079
5 git_parse_advance_expected [function] [call site] 00080
5 parse_int [function] [call site] 00081
5 git_parse_peek [function] [call site] 00082
5 git_parse_advance_expected [function] [call site] 00083
5 parse_int [function] [call site] 00084
5 git_parse_advance_expected [function] [call site] 00085
5 git_parse_advance_line [function] [call site] 00086
6 git__linenlen [function] [call site] 00087
5 git_parse_err [function] [call site] 00088
6 git_error_vset [function] [call site] 00089
5 git_error_set [function] [call site] 00090
4 git_error_clear [function] [call site] 00091
5 threadstate_get [function] [call site] 00092
5 set_error [function] [call site] 00093
6 threadstate_get [function] [call site] 00094
6 git_str_clear [function] [call site] 00095
6 git_str_puts [function] [call site] 00096
6 git_str_oom [function] [call site] 00097
6 set_error_from_buffer [function] [call site] 00098
5 __errno_location [call site] 00099
4 git_parse_err [function] [call site] 00100
4 git_parse_ctx_contains [function] [call site] 00101
4 parse_header_git [function] [call site] 00102
5 strlen [call site] 00103
5 git__prefixcmp [function] [call site] 00104
5 git_parse_advance_chars [function] [call site] 00105
5 git_parse_advance_ws [function] [call site] 00106
6 __ctype_b_loc [call site] 00107
5 git_parse_advance_expected [function] [call site] 00108
5 git_parse_err [function] [call site] 00109
5 git_parse_err [function] [call site] 00110
5 git_parse_advance_line [function] [call site] 00111
5 git_parse_err [function] [call site] 00112
4 git_parse_advance_line [function] [call site] 00113
4 git_error_set [function] [call site] 00114
3 parse_patch_body [function] [call site] 00115
4 git_parse_ctx_contains [function] [call site] 00116
4 parse_patch_binary [function] [call site] 00117
5 git_parse_advance_expected [function] [call site] 00118
5 git_parse_advance_nl [function] [call site] 00119
6 git_parse_advance_line [function] [call site] 00120
5 git_parse_err [function] [call site] 00121
5 parse_patch_binary_side [function] [call site] 00122
6 git_parse_ctx_contains [function] [call site] 00123
6 git_parse_advance_chars [function] [call site] 00124
6 git_parse_ctx_contains [function] [call site] 00125
6 git_parse_advance_chars [function] [call site] 00126
6 git_parse_err [function] [call site] 00127
6 git_parse_advance_digit [function] [call site] 00128
6 git_parse_advance_nl [function] [call site] 00129
6 git_parse_err [function] [call site] 00130
6 git_parse_peek [function] [call site] 00131
6 git_parse_err [function] [call site] 00132
6 git_parse_advance_chars [function] [call site] 00133
6 git_parse_err [function] [call site] 00134
6 git_str_decode_base85 [function] [call site] 00135
7 git_error_set [function] [call site] 00136
7 git_error_set_oom [function] [call site] 00137
7 git_error_set_oom [function] [call site] 00138
7 git_str_grow [function] [call site] 00139
7 git_error_set [function] [call site] 00140
6 git_parse_err [function] [call site] 00141
6 git_parse_advance_chars [function] [call site] 00142
6 git_parse_advance_nl [function] [call site] 00143
6 git_parse_err [function] [call site] 00144
6 git_str_detach [function] [call site] 00145
7 git_str_init [function] [call site] 00146
6 git_str_dispose [function] [call site] 00147
7 git__free [function] [call site] 00148
7 git_str_init [function] [call site] 00149
6 git_str_dispose [function] [call site] 00150
5 git_parse_advance_nl [function] [call site] 00151
5 git_parse_err [function] [call site] 00152
5 parse_patch_binary_side [function] [call site] 00153
5 git_parse_advance_nl [function] [call site] 00154
5 git_parse_err [function] [call site] 00155
4 git_parse_ctx_contains [function] [call site] 00156
4 parse_patch_binary_nodata [function] [call site] 00157
5 git_parse_err [function] [call site] 00158
5 git_parse_advance_expected [function] [call site] 00159
5 strlen [call site] 00160
5 git_parse_advance_expected [function] [call site] 00161
5 git_parse_advance_expected [function] [call site] 00162
5 strlen [call site] 00163
5 git_parse_advance_expected [function] [call site] 00164
5 git_parse_advance_expected [function] [call site] 00165
5 git_parse_advance_nl [function] [call site] 00166
5 git_parse_err [function] [call site] 00167
4 parse_patch_hunks [function] [call site] 00168
5 git_parse_ctx_contains [function] [call site] 00169
5 git_array__alloc [function] [call site] 00170
6 git_error_set_oom [function] [call site] 00171
6 git__reallocarray [function] [call site] 00172
7 git_error_set_oom [function] [call site] 00173
7 git__realloc [function] [call site] 00174
6 git__free [function] [call site] 00175
5 parse_hunk_header [function] [call site] 00176
5 parse_hunk_body [function] [call site] 00177
6 git_parse_ctx_contains [function] [call site] 00178
6 git_parse_err [function] [call site] 00179
6 git_parse_err [function] [call site] 00180
6 git_parse_peek [function] [call site] 00181
6 eof_for_origin [function] [call site] 00182
6 git_parse_err [function] [call site] 00183
6 git_array__alloc [function] [call site] 00184
6 git__strndup [function] [call site] 00185
7 strnlen [call site] 00186
7 git__malloc [function] [call site] 00187
6 git_parse_advance_line [function] [call site] 00188
6 git_parse_err [function] [call site] 00189
6 git_parse_ctx_contains [function] [call site] 00190
6 git_parse_err [function] [call site] 00191
6 git_array__alloc [function] [call site] 00192
6 git__strndup [function] [call site] 00193
6 eof_for_origin [function] [call site] 00194
6 git_parse_advance_line [function] [call site] 00195
3 check_patch [function] [call site] 00196
4 check_filenames [function] [call site] 00197
5 git_parse_err [function] [call site] 00198
5 git_parse_err [function] [call site] 00199
5 check_header_names [function] [call site] 00200
6 strcmp [call site] 00201
6 git_parse_err [function] [call site] 00202
6 strcmp [call site] 00203
6 git_parse_err [function] [call site] 00204
5 check_header_names [function] [call site] 00205
5 check_prefix [function] [call site] 00206
6 git_parse_err [function] [call site] 00207
6 git__strndup [function] [call site] 00208
5 check_prefix [function] [call site] 00209
5 git_parse_err [function] [call site] 00210
4 git_parse_err [function] [call site] 00211
4 git_oid_clear [function] [call site] 00212
5 git_oid_size [function] [call site] 00213
4 git_oid_clear [function] [call site] 00214
3 git_atomic32_inc [function] [call site] 00215
3 patch_parsed__free [function] [call site] 00216
4 git_patch_parse_ctx_free [function] [call site] 00217
5 git_atomic32_dec [function] [call site] 00218
5 patch_parse_ctx_free [function] [call site] 00219
6 git_parse_ctx_clear [function] [call site] 00220
6 git__free [function] [call site] 00221
4 git__free [function] [call site] 00222
4 git__free [function] [call site] 00223
4 git__free [function] [call site] 00224
4 git__free [function] [call site] 00225
4 git__free [function] [call site] 00226
4 git__free [function] [call site] 00227
4 git__free [function] [call site] 00228
4 git__free [function] [call site] 00229
4 git__free [function] [call site] 00230
4 git__free [function] [call site] 00231
4 git__free [function] [call site] 00232
4 git__free [function] [call site] 00233
4 git__free [function] [call site] 00234
4 git__free [function] [call site] 00235
4 git__free [function] [call site] 00236
2 git_patch_parse_ctx_free [function] [call site] 00237
1 git_patch_free [function] [call site] 00238
2 git_atomic32_dec [function] [call site] 00239
2 git_patch__free [function] [call site] 00240