Fuzz introspector: fuzz-credential-from-url-gently
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
416 416 3 :

['die', 'error', 'const_error.52762']

416 416 memory_limit_check call site: 00086 /src/git/wrapper.c:26
414 414 1 :

['BUG_fl']

414 414 strbuf_setlen call site: 00074 /src/git/./strbuf.h:166
0 0 None 416 833 xrealloc call site: 00082 /src/git/wrapper.c:131
0 0 None 416 416 do_xmalloc call site: 00085 /src/git/wrapper.c:53
0 0 None 2 417 url_decode_internal call site: 00269 /src/git/url.c:43
0 0 None 2 417 url_decode_internal call site: 00273 /src/git/url.c:61
0 0 None 0 415 url_decode_internal call site: 00269 /src/git/url.c:45
0 0 None 0 0 credential_from_url_1 call site: 00012 /src/git/credential.c:597
0 0 None 0 0 check_url_component call site: 00287 /src/git/credential.c:553
0 0 None 0 0 strbuf_setlen call site: 00075 /src/git/./strbuf.h:169
0 0 None 0 0 xrealloc call site: 00111 /src/git/wrapper.c:138
0 0 None 0 0 do_xmalloc call site: 00085 /src/git/wrapper.c:50

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 credential_init [function] [call site] 00001
1 credential_from_url_gently [function] [call site] 00002
2 credential_from_url_1 [function] [call site] 00003
3 credential_clear [function] [call site] 00004
4 credential_clear_secrets [function] [call site] 00005
4 string_list_clear [function] [call site] 00006
4 strvec_clear [function] [call site] 00007
5 strvec_init [function] [call site] 00008
4 strvec_clear [function] [call site] 00009
4 strvec_clear [function] [call site] 00010
4 credential_init [function] [call site] 00011
3 strstr [call site] 00012
3 strchr [call site] 00016
3 strchr [call site] 00017
3 strcspn [call site] 00018
3 url_decode_mem [function] [call site] 00019
4 memchr [call site] 00020
4 strbuf_add [function] [call site] 00021
5 strbuf_grow [function] [call site] 00022
6 die [function] [call site] 00023
7 fputs [call site] 00024
7 common_exit [function] [call site] 00025
8 check_bug_if_BUG [function] [call site] 00026
9 BUG_fl [function] [call site] 00027
10 BUG_vfl [function] [call site] 00028
11 BUG_vfl_common [function] [call site] 00029
12 snprintf [call site] 00030
12 vreportf [function] [call site] 00031
13 strlen [call site] 00032
13 fprintf [call site] 00033
13 abort [call site] 00034
13 vsnprintf [call site] 00035
13 fprintf [call site] 00037
13 fflush [call site] 00038
13 write_in_full [function] [call site] 00039
14 xwrite [function] [call site] 00040
15 write [call site] 00041
15 __errno_location [call site] 00042
15 __errno_location [call site] 00043
15 handle_nonblock [function] [call site] 00044
16 poll [call site] 00045
14 __errno_location [call site] 00046
11 abort [call site] 00047
11 trace2_cmd_error_va_fl [function] [call site] 00048
12 tr2_dst_trace_want [function] [call site] 00049
13 tr2_dst_get_trace_fd [function] [call site] 00050
14 tr2_sysenv_get [function] [call site] 00051
15 getenv [call site] 00053
15 xstrdup [function] [call site] 00054
16 strdup [call site] 00055
14 strcmp [call site] 00058
14 strcasecmp [call site] 00059
14 strcmp [call site] 00060
14 strlen [call site] 00061
14 atoi [call site] 00062
14 is_absolute_path [function] [call site] 00063
15 git_is_dir_sep [function] [call site] 00064
14 is_directory [function] [call site] 00065
15 stat64 [call site] 00066
14 tr2_dst_try_auto_path [function] [call site] 00067
15 tr2_sid_get [function] [call site] 00068
16 tr2_sid_compute [function] [call site] 00069
17 getenv [call site] 00070
17 strbuf_addstr [function] [call site] 00071
18 strlen [call site] 00072
18 strbuf_add [function] [call site] 00073
19 strbuf_setlen [function] [call site] 00074
20 __assert_fail [call site] 00076
17 strbuf_addch [function] [call site] 00077
18 strbuf_avail [function] [call site] 00078
18 strbuf_grow [function] [call site] 00079
19 xrealloc [function] [call site] 00082
20 xmalloc [function] [call site] 00083
21 do_xmalloc [function] [call site] 00084
22 memory_limit_check [function] [call site] 00085
23 git_env_ulong [function] [call site] 00086
24 getenv [call site] 00087
24 git_parse_ulong [function] [call site] 00088
25 git_parse_unsigned [function] [call site] 00089
26 strchr [call site] 00090
26 __errno_location [call site] 00091
26 __errno_location [call site] 00092
26 strtoumax [call site] 00093
26 __errno_location [call site] 00094
26 __errno_location [call site] 00095
26 get_unit_factor [function] [call site] 00096
27 strcasecmp [call site] 00097
27 strcasecmp [call site] 00098
26 __errno_location [call site] 00099
26 __errno_location [call site] 00100
26 __errno_location [call site] 00101
23 const_error [function] [call site] 00105
22 const_error [function] [call site] 00109
20 memory_limit_check [function] [call site] 00110
20 realloc [call site] 00111
17 tr2_sid_append_my_sid_component [function] [call site] 00113
18 getpid [call site] 00114
18 tr2_tbuf_utc_datetime [function] [call site] 00115
19 gmtime_r [call site] 00116
18 strbuf_addstr [function] [call site] 00122
18 strbuf_addch [function] [call site] 00123
18 xgethostname [function] [call site] 00124
19 gethostname [call site] 00125
18 strbuf_add [function] [call site] 00126
18 strlen [call site] 00127
18 hash_to_hex_algop_r [function] [call site] 00128
18 strbuf_addch [function] [call site] 00129
18 strbuf_add [function] [call site] 00130
18 strbuf_addf [function] [call site] 00131
19 strbuf_vaddf [function] [call site] 00132
20 strbuf_avail [function] [call site] 00133
20 strbuf_grow [function] [call site] 00134
20 vsnprintf [call site] 00135
20 strbuf_avail [function] [call site] 00138
20 strbuf_grow [function] [call site] 00139
20 vsnprintf [call site] 00140
20 strbuf_avail [function] [call site] 00141
20 strbuf_setlen [function] [call site] 00143
17 setenv [call site] 00144
15 strrchr [call site] 00145
15 strbuf_addstr [function] [call site] 00146
15 git_is_dir_sep [function] [call site] 00147
15 strbuf_addch [function] [call site] 00148
15 strbuf_addstr [function] [call site] 00149
15 tr2_dst_too_many_files [function] [call site] 00150
16 tr2_sysenv_get [function] [call site] 00151
16 strbuf_addstr [function] [call site] 00152
16 git_is_dir_sep [function] [call site] 00153
16 strbuf_addbuf [function] [call site] 00154
17 strbuf_grow [function] [call site] 00155
17 strbuf_setlen [function] [call site] 00156
16 strbuf_addstr [function] [call site] 00157
16 opendir [call site] 00158
16 readdir64 [call site] 00159
16 closedir [call site] 00160
16 open64 [call site] 00161
16 strbuf_release [function] [call site] 00162
17 strbuf_init [function] [call site] 00163
18 strbuf_grow [function] [call site] 00164
16 strbuf_release [function] [call site] 00165
15 strbuf_setlen [function] [call site] 00166
15 strbuf_addf [function] [call site] 00167
15 open64 [call site] 00168
15 strbuf_release [function] [call site] 00169
15 tr2_dst_want_warning [function] [call site] 00170
16 tr2_sysenv_get [function] [call site] 00171
15 tr2_sysenv_display_name [function] [call site] 00172
15 tr2_dst_want_warning [function] [call site] 00175
15 tr2_sysenv_display_name [function] [call site] 00176
15 __errno_location [call site] 00177
15 tr2_dst_trace_disable [function] [call site] 00179
16 close [call site] 00180
15 strbuf_release [function] [call site] 00181
15 strbuf_release [function] [call site] 00182
14 tr2_dst_try_path [function] [call site] 00183
15 open64 [call site] 00184
15 tr2_dst_want_warning [function] [call site] 00185
15 tr2_sysenv_display_name [function] [call site] 00186
15 __errno_location [call site] 00187
15 tr2_dst_trace_disable [function] [call site] 00189
14 starts_with [function] [call site] 00190
14 tr2_dst_try_unix_domain_socket [function] [call site] 00191
15 skip_prefix [function] [call site] 00192
15 skip_prefix [function] [call site] 00193
15 skip_prefix [function] [call site] 00194
15 tr2_dst_want_warning [function] [call site] 00195
15 tr2_sysenv_display_name [function] [call site] 00196
15 tr2_dst_trace_disable [function] [call site] 00198
15 is_absolute_path [function] [call site] 00199
15 strlen [call site] 00200
15 tr2_dst_want_warning [function] [call site] 00201
15 tr2_sysenv_display_name [function] [call site] 00202
15 tr2_dst_trace_disable [function] [call site] 00204
15 tr2_dst_try_uds_connect [function] [call site] 00205
16 socket [call site] 00206
16 gitstrlcpy [function] [call site] 00207
17 strlen [call site] 00208
16 connect [call site] 00209
16 close [call site] 00210
16 __errno_location [call site] 00211
15 __errno_location [call site] 00212
15 tr2_dst_try_uds_connect [function] [call site] 00213
15 tr2_dst_want_warning [function] [call site] 00214
15 tr2_sysenv_display_name [function] [call site] 00215
15 __errno_location [call site] 00216
15 tr2_dst_trace_disable [function] [call site] 00218
14 tr2_dst_malformed_warning [function] [call site] 00219
15 tr2_sysenv_display_name [function] [call site] 00220
14 tr2_dst_trace_disable [function] [call site] 00222
11 common_exit [function] [call site] 00223
12 trace2_cmd_exit_fl [function] [call site] 00224
13 trace2_collect_process_info [function] [call site] 00225
14 trace2_is_enabled [function] [call site] 00226
14 getppid [call site] 00227
14 push_ancestry_name [function] [call site] 00228
15 stat_parent_pid [function] [call site] 00229
16 strbuf_addf [function] [call site] 00230
16 git_fopen [function] [call site] 00231
17 fopen64 [call site] 00232
17 fileno [call site] 00233
17 fclose [call site] 00234
17 fclose [call site] 00235
17 __errno_location [call site] 00236
16 strbuf_fread [function] [call site] 00237
17 strbuf_grow [function] [call site] 00238
17 fread [call site] 00239
17 strbuf_setlen [function] [call site] 00240
17 strbuf_release [function] [call site] 00241
16 parse_proc_stat [function] [call site] 00242
17 strchr [call site] 00243
17 strtol [call site] 00244
17 strbuf_add [function] [call site] 00245
16 fclose [call site] 00246
16 strbuf_release [function] [call site] 00247
16 strbuf_release [function] [call site] 00248
15 strvec_push [function] [call site] 00249
16 strvec_push_nodup [function] [call site] 00251
15 push_ancestry_name [function] [call site] 00254
16 strbuf_release [function] [call site] 00255
14 trace2_cmd_ancestry_fl [function] [call site] 00256
15 tr2_dst_trace_want [function] [call site] 00257
14 strvec_clear [function] [call site] 00258
13 getnanotime [function] [call site] 00259
14 highres_nanos [function] [call site] 00260
15 clock_gettime [call site] 00261
14 gettimeofday_nanos [function] [call site] 00262
15 gettimeofday [call site] 00263
14 gettimeofday_nanos [function] [call site] 00264
14 highres_nanos [function] [call site] 00265
13 tr2tls_absolute_elapsed [function] [call site] 00266
13 tr2_dst_trace_want [function] [call site] 00267
11 exit [call site] 00268
4 url_decode_internal [function] [call site] 00269
5 strbuf_addch [function] [call site] 00273
5 strbuf_addch [function] [call site] 00274
5 strbuf_addch [function] [call site] 00275
5 strbuf_detach [function] [call site] 00276
6 strbuf_grow [function] [call site] 00277
3 url_decode_mem [function] [call site] 00278
3 url_decode_mem [function] [call site] 00279
3 url_decode_mem [function] [call site] 00281
3 url_decode [function] [call site] 00282
4 strlen [call site] 00283
4 url_decode_mem [function] [call site] 00284
3 strlen [call site] 00285
3 check_url_component [function] [call site] 00286
3 check_url_component [function] [call site] 00290
3 check_url_component [function] [call site] 00291
3 check_url_component [function] [call site] 00292
3 check_url_component [function] [call site] 00293