Fuzz introspector: config_file_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
1216 1338 3 :

['git_regexp_compile', 'git__free.357', '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', 'collapse', 'count_run', 'git__free.14332']

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 :

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

['abort']

2 2 LLVMFuzzerInitialize call site: 00000 /src/libgit2/build/../fuzzers/config_file_fuzzer.c:30
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

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 git_config_new [function] [call site] 00001
2 git__calloc [function] [call site] 00002
3 git_error_set_oom [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
9 git_error_vset [function] [call site] 00011
10 threadstate_get [function] [call site] 00012
11 git_tlsdata_set [function] [call site] 00013
12 pthread_setspecific [call site] 00014
10 __errno_location [call site] 00015
10 git_str_clear [function] [call site] 00016
10 git_str_vprintf [function] [call site] 00017
11 strlen [call site] 00018
11 git_error_set_oom [function] [call site] 00019
11 git_error_set_oom [function] [call site] 00020
11 git_str_grow [function] [call site] 00021
11 vsnprintf [call site] 00022
11 git__free [function] [call site] 00023
11 git_error_set_oom [function] [call site] 00024
11 git_error_set_oom [function] [call site] 00025
11 git_str_grow [function] [call site] 00026
10 git_str_put [function] [call site] 00027
11 git_error_set [function] [call site] 00028
11 git_error_set_oom [function] [call site] 00029
11 git_error_set_oom [function] [call site] 00030
11 git_str_grow [function] [call site] 00031
10 strerror [call site] 00032
10 git_str_puts [function] [call site] 00033
11 git_error_set [function] [call site] 00034
11 strlen [call site] 00035
11 git_str_put [function] [call site] 00036
10 __errno_location [call site] 00037
10 git_str_oom [function] [call site] 00038
10 set_error_from_buffer [function] [call site] 00039
11 threadstate_get [function] [call site] 00040
8 git__free [function] [call site] 00041
8 git_error_set_oom [function] [call site] 00042
8 git__realloc [function] [call site] 00043
9 git_error_set_oom [function] [call site] 00044
8 git__free [function] [call site] 00045
3 git__malloc [function] [call site] 00046
4 git_error_set_oom [function] [call site] 00047
2 git_vector_init [function] [call site] 00048
3 git_error_set [function] [call site] 00049
3 resize_vector [function] [call site] 00050
4 git__reallocarray [function] [call site] 00051
5 git_error_set_oom [function] [call site] 00052
5 git__realloc [function] [call site] 00053
2 reader_cmp [function] [call site] 00054
2 git_vector_init [function] [call site] 00055
2 writer_cmp [function] [call site] 00056
2 config_free [function] [call site] 00057
3 git_atomic32_dec [function] [call site] 00058
3 backend_instance_free [function] [call site] 00059
4 git__free [function] [call site] 00060
3 git_vector_dispose [function] [call site] 00061
4 git__free [function] [call site] 00062
3 git_vector_dispose [function] [call site] 00063
3 git__free [function] [call site] 00064
2 git_atomic32_inc [function] [call site] 00065
1 git_config_backend_from_string [function] [call site] 00066
2 config_backend_new [function] [call site] 00067
3 git__calloc [function] [call site] 00068
3 git_config_list_new [function] [call site] 00069
4 git__calloc [function] [call site] 00070
4 git_atomic32_inc [function] [call site] 00071
3 git__strdup [function] [call site] 00072
4 strlen [call site] 00073
4 git__malloc [function] [call site] 00074
3 git__strdup [function] [call site] 00075
3 git_config_list_free [function] [call site] 00076
4 git_atomic32_dec [function] [call site] 00077
4 config_list_free [function] [call site] 00078
5 git_config_list_pathmap_iterate [function] [call site] 00079
5 git__free [function] [call site] 00080
5 git_config_list_pathmap_dispose [function] [call site] 00081
6 git__free [function] [call site] 00082
5 git_config_list_headmap_iterate [function] [call site] 00083
5 git__free [function] [call site] 00084
5 git__free [function] [call site] 00085
5 git_config_list_headmap_dispose [function] [call site] 00086
6 git__free [function] [call site] 00087
5 git__free [function] [call site] 00088
5 git__free [function] [call site] 00089
5 git__free [function] [call site] 00090
5 git__free [function] [call site] 00091
3 git__free [function] [call site] 00092
3 git__free [function] [call site] 00093
3 git__free [function] [call site] 00094
2 git_str_set [function] [call site] 00095
3 git_str_clear [function] [call site] 00096
3 git_error_set_oom [function] [call site] 00097
3 git_str_grow [function] [call site] 00098
2 git_config_list_free [function] [call site] 00099
2 git__free [function] [call site] 00100
1 git_config_add_backend [function] [call site] 00101
2 git_error_set [function] [call site] 00102
2 git_error_set [function] [call site] 00103
2 git_error__check_version [function] [call site] 00104
3 git_error_set [function] [call site] 00105
2 git__calloc [function] [call site] 00106
2 git_config__add_instance [function] [call site] 00107
3 try_remove_existing_backend [function] [call site] 00108
4 git_vector_remove [function] [call site] 00109
5 git_error_set [function] [call site] 00110
4 git_vector_remove [function] [call site] 00111
4 git_atomic32_dec [function] [call site] 00112
4 backend_instance_free [function] [call site] 00113
4 git__free [function] [call site] 00114
3 git__malloc [function] [call site] 00115
3 git_vector_insert_sorted [function] [call site] 00116
4 git_error_set [function] [call site] 00117
4 git_error_set [function] [call site] 00118
4 compute_new_size [function] [call site] 00152
4 resize_vector [function] [call site] 00153
4 git__bsearch [function] [call site] 00154
3 duplicate_level [function] [call site] 00155
4 git_error_set [function] [call site] 00156
3 git_vector_insert_sorted [function] [call site] 00157
3 git__free [function] [call site] 00158
3 git_atomic32_inc [function] [call site] 00159
2 git__free [function] [call site] 00160
1 git_config_foreach [function] [call site] 00161
2 git_config_foreach_match [function] [call site] 00162
3 git_config_iterator_glob_new [function] [call site] 00163
4 git_config_iterator_new [function] [call site] 00164
5 git__calloc [function] [call site] 00165
4 git__calloc [function] [call site] 00166
4 git_regexp_compile [function] [call site] 00167
5 pcre_compile [function] [call site] 00168
6 pcre_compile2 [function] [call site] 00169
7 strncmp [call site] 00170
7 strncmp [call site] 00171
7 strncmp [call site] 00172
7 strncmp [call site] 00173
7 strncmp [call site] 00174
7 strncmp [call site] 00175
7 __ctype_b_loc [call site] 00176
7 strncmp [call site] 00177
7 __ctype_b_loc [call site] 00178
7 strncmp [call site] 00179
7 strncmp [call site] 00180
7 strncmp [call site] 00181
7 strncmp [call site] 00182
7 strncmp [call site] 00183
7 strncmp [call site] 00184
7 strncmp [call site] 00185
7 strlen [call site] 00186
7 compile_regex [function] [call site] 00187
8 compile_branch [function] [call site] 00188
9 complete_callout [function] [call site] 00189
9 auto_callout [function] [call site] 00190
9 _pcre_is_newline [function] [call site] 00191
9 is_counted_repeat [function] [call site] 00192
9 complete_callout [function] [call site] 00193
9 auto_callout [function] [call site] 00194
9 strncmp [call site] 00195
9 strncmp [call site] 00196
9 check_posix_syntax [function] [call site] 00197
9 strncmp [call site] 00198
9 check_posix_syntax [function] [call site] 00199
9 check_posix_name [function] [call site] 00200
10 strncmp [call site] 00201
9 check_escape [function] [call site] 00202
10 is_counted_repeat [function] [call site] 00203
9 add_list_to_class [function] [call site] 00204
10 add_to_class [function] [call site] 00205
9 add_not_list_to_class [function] [call site] 00206
10 add_to_class [function] [call site] 00207
10 add_to_class [function] [call site] 00208
9 add_list_to_class [function] [call site] 00209
9 add_not_list_to_class [function] [call site] 00210
9 check_escape [function] [call site] 00211
9 check_posix_syntax [function] [call site] 00212
9 add_to_class [function] [call site] 00213
9 add_to_class [function] [call site] 00214
9 read_repeat_counts [function] [call site] 00215
9 _pcre_is_newline [function] [call site] 00216
9 adjust_recurse [function] [call site] 00217
10 find_recurse [function] [call site] 00218
9 adjust_recurse [function] [call site] 00219
9 expand_workspace [function] [call site] 00220
9 expand_workspace [function] [call site] 00221
9 could_be_empty_branch [function] [call site] 00222
10 first_significant_code [function] [call site] 00223
10 could_be_empty_branch [function] [call site] 00224
11 could_be_empty_branch [function] [call site] 00225
12 first_significant_code [function] [call site] 00226
9 adjust_recurse [function] [call site] 00227
9 adjust_recurse [function] [call site] 00228
9 strncmp [call site] 00229
9 strncmp [call site] 00230
9 strncmp [call site] 00231
9 strncmp [call site] 00232
9 is_counted_repeat [function] [call site] 00233
9 strncmp [call site] 00234
9 strncmp [call site] 00235
9 strncmp [call site] 00236
9 strcmp [call site] 00237
9 _pcre_find_bracket [function] [call site] 00238
9 expand_workspace [function] [call site] 00239
9 could_be_empty [function] [call site] 00240
10 could_be_empty_branch [function] [call site] 00241
9 compile_regex [function] [call site] 00242
10 find_fixedlength [function] [call site] 00243
11 find_fixedlength [function] [call site] 00244
12 find_fixedlength [function] [call site] 00245
10 adjust_recurse [function] [call site] 00246
9 check_escape [function] [call site] 00247
7 add_name [function] [call site] 00248
8 memcmp [call site] 00249
7 compile_regex [function] [call site] 00250
7 _pcre_find_bracket [function] [call site] 00251
7 auto_possessify [function] [call site] 00252
8 get_repeat_base [function] [call site] 00253
8 get_chr_property_list [function] [call site] 00254
9 get_repeat_base [function] [call site] 00255
8 compare_opcodes [function] [call site] 00256
9 compare_opcodes [function] [call site] 00257
10 compare_opcodes [function] [call site] 00258
11 get_chr_property_list [function] [call site] 00259
8 get_chr_property_list [function] [call site] 00260
8 compare_opcodes [function] [call site] 00261
7 _pcre_find_bracket [function] [call site] 00262
7 find_fixedlength [function] [call site] 00263
7 _pcre_find_bracket [function] [call site] 00264
7 find_error_text [function] [call site] 00265
7 is_anchored [function] [call site] 00266
8 first_significant_code [function] [call site] 00267
8 is_anchored [function] [call site] 00268
9 is_anchored [function] [call site] 00269
10 is_anchored [function] [call site] 00270
11 is_anchored [function] [call site] 00271
12 is_anchored [function] [call site] 00272
7 find_firstassertedchar [function] [call site] 00273
8 first_significant_code [function] [call site] 00274
8 find_firstassertedchar [function] [call site] 00275
7 is_startline [function] [call site] 00276
8 first_significant_code [function] [call site] 00277
8 is_startline [function] [call site] 00278
9 first_significant_code [function] [call site] 00279
9 is_startline [function] [call site] 00280
10 is_startline [function] [call site] 00281
11 is_startline [function] [call site] 00282
12 is_startline [function] [call site] 00283
7 could_be_empty_branch [function] [call site] 00284
5 git_error_set_str [function] [call site] 00285
6 threadstate_get [function] [call site] 00286
6 git_error_set [function] [call site] 00287
6 git_str_clear [function] [call site] 00288
6 git_str_puts [function] [call site] 00289
6 git_str_oom [function] [call site] 00290
6 set_error_from_buffer [function] [call site] 00291
4 git__free [function] [call site] 00292
3 git_config_next [function] [call site] 00293
3 git_error_set_after_callback_function [function] [call site] 00294
4 git_error_exists [function] [call site] 00295
5 threadstate_get [function] [call site] 00296
4 git_error_set [function] [call site] 00297
3 git_config_iterator_free [function] [call site] 00298
1 foreach_cb [function] [call site] 00299
1 git_config_backend_free [function] [call site] 00300
1 git_config_free [function] [call site] 00301
2 git_atomic32_dec [function] [call site] 00302
2 config_free [function] [call site] 00303