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
1210 1210 1 :

['git_regexp_compile']

1210 1210 git_config_iterator_glob_new call site: 00231 /src/libgit2/src/libgit2/config.c:481
160 160 5 :

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

160 220 git__tsort_r call site: 00206 /src/libgit2/src/util/tsort.c:346
128 128 1 :

['try_remove_existing_backend']

128 452 git_config__add_internal call site: 00195 /src/libgit2/src/libgit2/config.c:262
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: 00011 /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: 00027 /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: 00018 /src/libgit2/src/libgit2/errors.c:110
0 111 1 :

['set_parse_error']

0 111 parse_section_header call site: 00106 /src/libgit2/src/libgit2/config_parse.c:210

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 git_config_new [function] [call site] 00001
2 git_vector_init [function] [call site] 00002
3 git_error_set [function] [call site] 00003
4 git_error_vset [function] [call site] 00004
5 git_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
9 git_error_set_oom [function] [call site] 00012
10 git_threadstate_get [function] [call site] 00013
11 git_tlsdata_set [function] [call site] 00014
12 pthread_setspecific [call site] 00015
5 __errno_location [call site] 00016
5 git_str_clear [function] [call site] 00017
5 git_str_vprintf [function] [call site] 00018
6 strlen [call site] 00019
6 git_error_set_oom [function] [call site] 00020
6 git_error_set_oom [function] [call site] 00021
6 git_str_grow [function] [call site] 00022
6 vsnprintf [call site] 00023
6 git_error_set_oom [function] [call site] 00024
6 git_error_set_oom [function] [call site] 00025
6 git_str_grow [function] [call site] 00026
5 git_str_put [function] [call site] 00027
6 git_error_set [function] [call site] 00028
6 git_error_set_oom [function] [call site] 00029
6 git_error_set_oom [function] [call site] 00030
6 git_str_grow [function] [call site] 00031
5 strerror [call site] 00032
5 git_str_puts [function] [call site] 00033
6 git_error_set [function] [call site] 00034
6 strlen [call site] 00035
6 git_str_put [function] [call site] 00036
5 __errno_location [call site] 00037
5 git_str_oom [function] [call site] 00038
5 set_error_from_buffer [function] [call site] 00039
6 git_threadstate_get [function] [call site] 00040
3 resize_vector [function] [call site] 00041
2 config_backend_cmp [function] [call site] 00042
2 git_atomic32_inc [function] [call site] 00043
1 git_config_backend_from_string [function] [call site] 00044
2 git_config_entries_new [function] [call site] 00045
3 git_atomic32_inc [function] [call site] 00046
3 git_strmap_new [function] [call site] 00047
4 kh_init_str [function] [call site] 00048
2 git_str_set [function] [call site] 00049
3 git_str_clear [function] [call site] 00050
3 git_error_set_oom [function] [call site] 00051
3 git_str_grow [function] [call site] 00052
2 git_config_entries_free [function] [call site] 00053
3 git_atomic32_dec [function] [call site] 00054
3 config_entries_free [function] [call site] 00055
4 git_strmap_iterate [function] [call site] 00056
4 git_strmap_free [function] [call site] 00057
5 kh_destroy_str [function] [call site] 00058
2 config_memory_open [function] [call site] 00059
3 git_config_parser_init [function] [call site] 00060
4 git_parse_ctx_init [function] [call site] 00061
5 git__linenlen [function] [call site] 00062
6 memchr [call site] 00063
3 git_config_parse [function] [call site] 00064
4 skip_bom [function] [call site] 00065
5 git_str_detect_bom [function] [call site] 00066
5 git_parse_advance_chars [function] [call site] 00067
4 git_parse_peek [function] [call site] 00068
5 git__isspace [function] [call site] 00069
4 git_parse_peek [function] [call site] 00070
4 parse_section_header [function] [call site] 00071
5 git_parse_advance_ws [function] [call site] 00072
6 git__isspace [function] [call site] 00073
5 strrchr [call site] 00074
5 set_parse_error [function] [call site] 00075
6 git_error_set [function] [call site] 00076
6 git_error_set [function] [call site] 00077
5 git_error_set_oom [function] [call site] 00078
5 git_error_set [function] [call site] 00079
5 git__isspace [function] [call site] 00080
5 parse_subsection_header [function] [call site] 00081
6 strlen [call site] 00082
6 git__isspace [function] [call site] 00083
6 set_parse_error [function] [call site] 00084
6 strrchr [call site] 00085
6 set_parse_error [function] [call site] 00086
6 git_error_set_oom [function] [call site] 00087
6 git_error_set_oom [function] [call site] 00088
6 git_str_grow [function] [call site] 00089
6 git_str_printf [function] [call site] 00090
7 git_str_vprintf [function] [call site] 00091
6 set_parse_error [function] [call site] 00092
6 set_parse_error [function] [call site] 00093
6 git_str_putc [function] [call site] 00094
7 git_error_set_oom [function] [call site] 00095
7 git_str_grow [function] [call site] 00096
6 git_str_oom [function] [call site] 00097
6 set_parse_error [function] [call site] 00098
6 git_str_dispose [function] [call site] 00099
7 git_str_init [function] [call site] 00100
6 git_str_detach [function] [call site] 00101
7 git_str_init [function] [call site] 00102
5 config_keychar [function] [call site] 00103
6 __ctype_b_loc [call site] 00104
5 set_parse_error [function] [call site] 00105
5 tolower [call site] 00106
5 set_parse_error [function] [call site] 00107
4 git_parse_advance_chars [function] [call site] 00108
4 git_parse_peek [function] [call site] 00109
4 parse_variable [function] [call site] 00110
5 git_parse_advance_ws [function] [call site] 00111
5 strip_comments [function] [call site] 00112
6 git__isspace [function] [call site] 00113
5 parse_name [function] [call site] 00114
6 is_namechar [function] [call site] 00115
7 __ctype_b_loc [call site] 00116
6 set_parse_error [function] [call site] 00117
6 git__isspace [function] [call site] 00118
6 set_parse_error [function] [call site] 00119
5 git__isspace [function] [call site] 00120
5 unescape_line [function] [call site] 00121
6 strlen [call site] 00122
6 git_error_set_oom [function] [call site] 00123
6 strchr [call site] 00124
6 git_error_set [function] [call site] 00125
5 git_str_attach [function] [call site] 00126
6 git_str_dispose [function] [call site] 00127
6 strlen [call site] 00128
6 git_str_grow [function] [call site] 00129
5 parse_multiline_variable [function] [call site] 00130
6 git_parse_advance_line [function] [call site] 00131
7 git__linenlen [function] [call site] 00132
6 git_error_set_oom [function] [call site] 00133
6 strip_comments [function] [call site] 00134
6 unescape_line [function] [call site] 00135
6 git_str_puts [function] [call site] 00136
5 git_str_oom [function] [call site] 00137
5 git_str_dispose [function] [call site] 00138
5 git_str_detach [function] [call site] 00139
4 git_parse_advance_line [function] [call site] 00140
3 read_variable_cb [function] [call site] 00141
4 git_str_puts [function] [call site] 00142
4 git_str_putc [function] [call site] 00143
4 tolower [call site] 00144
4 git_str_putc [function] [call site] 00145
4 git_str_oom [function] [call site] 00146
4 git_str_detach [function] [call site] 00147
4 git_config_entries_append [function] [call site] 00148
5 git_strmap_get [function] [call site] 00149
6 kh_get_str [function] [call site] 00150
7 __ac_X31_hash_string [function] [call site] 00151
7 strcmp [call site] 00152
5 git_strmap_set [function] [call site] 00153
6 kh_put_str [function] [call site] 00154
7 kh_resize_str [function] [call site] 00155
3 git_config_parser_dispose [function] [call site] 00156
4 git_parse_ctx_clear [function] [call site] 00157
2 config_memory_get [function] [call site] 00158
3 git_config_entries_get [function] [call site] 00159
4 git_strmap_get [function] [call site] 00160
2 config_memory_set [function] [call site] 00161
3 config_error_readonly [function] [call site] 00162
4 git_error_set [function] [call site] 00163
2 config_memory_set_multivar [function] [call site] 00164
3 config_error_readonly [function] [call site] 00165
2 config_memory_delete [function] [call site] 00166
3 config_error_readonly [function] [call site] 00167
2 config_memory_delete_multivar [function] [call site] 00168
3 config_error_readonly [function] [call site] 00169
2 config_memory_iterator [function] [call site] 00170
3 git_config_entries_dup [function] [call site] 00171
4 git_config_entries_new [function] [call site] 00172
4 git_config_entries_dup_entry [function] [call site] 00173
5 git_config_entries_append [function] [call site] 00174
4 git_config_entries_free [function] [call site] 00175
3 git_config_entries_iterator_new [function] [call site] 00176
4 config_iterator_next [function] [call site] 00177
4 config_iterator_free [function] [call site] 00178
5 git_config_entries_free [function] [call site] 00179
4 git_config_entries_incref [function] [call site] 00180
5 git_atomic32_inc [function] [call site] 00181
3 git_config_entries_free [function] [call site] 00182
2 config_memory_lock [function] [call site] 00183
3 config_error_readonly [function] [call site] 00184
2 config_memory_unlock [function] [call site] 00185
3 config_error_readonly [function] [call site] 00186
2 config_memory_free [function] [call site] 00187
3 git_config_entries_free [function] [call site] 00188
3 git_str_dispose [function] [call site] 00189
1 git_config_add_backend [function] [call site] 00190
2 git_error_set [function] [call site] 00191
2 git_error_set [function] [call site] 00192
2 git_error__check_version [function] [call site] 00193
3 git_error_set [function] [call site] 00194
2 git_config__add_internal [function] [call site] 00195
3 try_remove_existing_backend [function] [call site] 00196
4 git_vector_get [function] [call site] 00197
4 git_vector_remove [function] [call site] 00198
5 git_error_set [function] [call site] 00199
4 git_atomic32_dec [function] [call site] 00200
4 backend_internal_free [function] [call site] 00201
3 git_vector_insert_sorted [function] [call site] 00202
4 git_error_set [function] [call site] 00203
4 compute_new_size [function] [call site] 00223
4 git__bsearch [function] [call site] 00224
3 duplicate_level [function] [call site] 00225
4 git_error_set [function] [call site] 00226
3 git_vector_sort [function] [call site] 00227
3 git_atomic32_inc [function] [call site] 00228
1 git_config_foreach [function] [call site] 00229
2 git_config_foreach_match [function] [call site] 00230
3 git_config_iterator_glob_new [function] [call site] 00231
4 git_config_iterator_new [function] [call site] 00232
5 all_iter_free [function] [call site] 00233
5 all_iter_next [function] [call site] 00234
6 find_next_backend [function] [call site] 00235
7 git_vector_get [function] [call site] 00236
6 git_vector_get [function] [call site] 00237
4 git_regexp_compile [function] [call site] 00238
5 pcre_compile [function] [call site] 00239
6 pcre_compile2 [function] [call site] 00240
7 strncmp [call site] 00241
7 strncmp [call site] 00242
7 strncmp [call site] 00243
7 strncmp [call site] 00244
7 strncmp [call site] 00245
7 strncmp [call site] 00246
7 __ctype_b_loc [call site] 00247
7 strncmp [call site] 00248
7 __ctype_b_loc [call site] 00249
7 strncmp [call site] 00250
7 strncmp [call site] 00251
7 strncmp [call site] 00252
7 strncmp [call site] 00253
7 strncmp [call site] 00254
7 strncmp [call site] 00255
7 strncmp [call site] 00256
7 strlen [call site] 00257
7 compile_regex [function] [call site] 00258
8 compile_branch [function] [call site] 00259
9 complete_callout [function] [call site] 00260
9 auto_callout [function] [call site] 00261
9 _pcre_is_newline [function] [call site] 00262
9 is_counted_repeat [function] [call site] 00263
9 complete_callout [function] [call site] 00264
9 auto_callout [function] [call site] 00265
9 strncmp [call site] 00266
9 strncmp [call site] 00267
9 check_posix_syntax [function] [call site] 00268
9 strncmp [call site] 00269
9 check_posix_syntax [function] [call site] 00270
9 check_posix_name [function] [call site] 00271
10 strncmp [call site] 00272
9 check_escape [function] [call site] 00273
10 is_counted_repeat [function] [call site] 00274
9 add_list_to_class [function] [call site] 00275
10 add_to_class [function] [call site] 00276
9 add_not_list_to_class [function] [call site] 00277
10 add_to_class [function] [call site] 00278
10 add_to_class [function] [call site] 00279
9 add_list_to_class [function] [call site] 00280
9 add_not_list_to_class [function] [call site] 00281
9 check_escape [function] [call site] 00282
9 check_posix_syntax [function] [call site] 00283
9 add_to_class [function] [call site] 00284
9 add_to_class [function] [call site] 00285
9 read_repeat_counts [function] [call site] 00286
9 _pcre_is_newline [function] [call site] 00287
9 adjust_recurse [function] [call site] 00288
10 find_recurse [function] [call site] 00289
9 adjust_recurse [function] [call site] 00290
9 expand_workspace [function] [call site] 00291
9 expand_workspace [function] [call site] 00292
9 could_be_empty_branch [function] [call site] 00293
10 first_significant_code [function] [call site] 00294
10 could_be_empty_branch [function] [call site] 00295
11 could_be_empty_branch [function] [call site] 00296
12 first_significant_code [function] [call site] 00297
9 adjust_recurse [function] [call site] 00298
9 adjust_recurse [function] [call site] 00299
9 strncmp [call site] 00300
9 strncmp [call site] 00301
9 strncmp [call site] 00302
9 strncmp [call site] 00303
9 is_counted_repeat [function] [call site] 00304
9 strncmp [call site] 00305
9 strncmp [call site] 00306
9 strncmp [call site] 00307
9 strcmp [call site] 00308
9 _pcre_find_bracket [function] [call site] 00309
9 expand_workspace [function] [call site] 00310
9 could_be_empty [function] [call site] 00311
10 could_be_empty_branch [function] [call site] 00312
9 compile_regex [function] [call site] 00313
10 find_fixedlength [function] [call site] 00314
11 find_fixedlength [function] [call site] 00315
12 find_fixedlength [function] [call site] 00316
10 adjust_recurse [function] [call site] 00317
9 check_escape [function] [call site] 00318
7 add_name [function] [call site] 00319
8 memcmp [call site] 00320
7 compile_regex [function] [call site] 00321
7 _pcre_find_bracket [function] [call site] 00322
7 auto_possessify [function] [call site] 00323
8 get_repeat_base [function] [call site] 00324
8 get_chr_property_list [function] [call site] 00325
9 get_repeat_base [function] [call site] 00326
8 compare_opcodes [function] [call site] 00327
9 compare_opcodes [function] [call site] 00328
10 compare_opcodes [function] [call site] 00329
11 get_chr_property_list [function] [call site] 00330
8 get_chr_property_list [function] [call site] 00331
8 compare_opcodes [function] [call site] 00332
7 _pcre_find_bracket [function] [call site] 00333
7 find_fixedlength [function] [call site] 00334
7 _pcre_find_bracket [function] [call site] 00335
7 find_error_text [function] [call site] 00336
7 is_anchored [function] [call site] 00337
8 first_significant_code [function] [call site] 00338
8 is_anchored [function] [call site] 00339
9 is_anchored [function] [call site] 00340
10 is_anchored [function] [call site] 00341
11 is_anchored [function] [call site] 00342
12 is_anchored [function] [call site] 00343
7 find_firstassertedchar [function] [call site] 00344
8 first_significant_code [function] [call site] 00345
8 find_firstassertedchar [function] [call site] 00346
7 is_startline [function] [call site] 00347
8 first_significant_code [function] [call site] 00348
8 is_startline [function] [call site] 00349
9 first_significant_code [function] [call site] 00350
9 is_startline [function] [call site] 00351
10 is_startline [function] [call site] 00352
11 is_startline [function] [call site] 00353
12 is_startline [function] [call site] 00354
7 could_be_empty_branch [function] [call site] 00355
5 git_error_set_str [function] [call site] 00356
6 git_threadstate_get [function] [call site] 00357
6 git_error_set [function] [call site] 00358
6 git_str_clear [function] [call site] 00359
6 git_str_oom [function] [call site] 00360
6 set_error_from_buffer [function] [call site] 00361
4 all_iter_glob_next [function] [call site] 00362
5 all_iter_next [function] [call site] 00363
5 git_regexp_match [function] [call site] 00364
6 strlen [call site] 00365
6 pcre_exec [function] [call site] 00366
7 _pcre_is_newline [function] [call site] 00367
7 _pcre_was_newline [function] [call site] 00368
7 match [function] [call site] 00369
8 strcmp [call site] 00370
8 _pcre_was_newline [function] [call site] 00371
8 _pcre_is_newline [function] [call site] 00372
8 _pcre_is_newline [function] [call site] 00373
8 _pcre_is_newline [function] [call site] 00374
8 match_ref [function] [call site] 00375
8 match_ref [function] [call site] 00376
8 match_ref [function] [call site] 00377
8 match_ref [function] [call site] 00378
8 _pcre_is_newline [function] [call site] 00379
8 _pcre_is_newline [function] [call site] 00380
8 _pcre_is_newline [function] [call site] 00381
7 _pcre_is_newline [function] [call site] 00382
7 release_match_heapframes [function] [call site] 00383
7 release_match_heapframes [function] [call site] 00384
7 release_match_heapframes [function] [call site] 00385
4 all_iter_glob_free [function] [call site] 00386
5 git_regexp_dispose [function] [call site] 00387
5 all_iter_free [function] [call site] 00388
3 git_config_next [function] [call site] 00389
3 git_error_set_after_callback_function [function] [call site] 00390
4 git_error_last [function] [call site] 00391
5 git_libgit2_init_count [function] [call site] 00392
6 git_runtime_init_count [function] [call site] 00393
7 init_lock [function] [call site] 00394
8 pthread_mutex_lock [call site] 00395
7 git_atomic32_get [function] [call site] 00396
7 init_unlock [function] [call site] 00397
8 pthread_mutex_unlock [call site] 00398
5 git_threadstate_get [function] [call site] 00399
4 git_error_set [function] [call site] 00400
3 git_config_iterator_free [function] [call site] 00401
1 foreach_cb [function] [call site] 00402
1 git_config_backend_free [function] [call site] 00403
1 git_config_free [function] [call site] 00404
2 git_atomic32_dec [function] [call site] 00405
2 config_free [function] [call site] 00406
3 git_vector_get [function] [call site] 00407
3 git_atomic32_dec [function] [call site] 00408
3 backend_internal_free [function] [call site] 00409
3 git_vector_free [function] [call site] 00410
3 git__memzero [function] [call site] 00411