Fuzz introspector: fuzz-url-decode-mem
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: 00071 /src/git/wrapper.c:26
414 414 1 :

['BUG_fl']

414 414 strbuf_setlen call site: 00059 /src/git/./strbuf.h:166
0 0 None 416 833 xrealloc call site: 00067 /src/git/wrapper.c:131
0 0 None 0 0 strbuf_setlen call site: 00060 /src/git/./strbuf.h:169
0 0 None 0 0 xrealloc call site: 00096 /src/git/wrapper.c:138

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 url_decode [function] [call site] 00001
2 strlen [call site] 00002
2 url_decode_mem [function] [call site] 00003
3 memchr [call site] 00004
3 strbuf_add [function] [call site] 00005
4 strbuf_grow [function] [call site] 00006
5 die [function] [call site] 00007
6 fputs [call site] 00008
6 common_exit [function] [call site] 00009
7 check_bug_if_BUG [function] [call site] 00010
8 BUG_fl [function] [call site] 00011
9 BUG_vfl [function] [call site] 00012
10 BUG_vfl_common [function] [call site] 00013
11 snprintf [call site] 00014
11 vreportf [function] [call site] 00015
12 strlen [call site] 00016
12 fprintf [call site] 00017
12 abort [call site] 00018
12 vsnprintf [call site] 00019
12 _ [function] [call site] 00020
13 gettext [call site] 00021
12 fprintf [call site] 00022
12 fflush [call site] 00023
12 write_in_full [function] [call site] 00024
13 xwrite [function] [call site] 00025
14 write [call site] 00026
14 __errno_location [call site] 00027
14 __errno_location [call site] 00028
14 handle_nonblock [function] [call site] 00029
15 poll [call site] 00030
13 __errno_location [call site] 00031
10 abort [call site] 00032
10 trace2_cmd_error_va_fl [function] [call site] 00033
11 tr2_dst_trace_want [function] [call site] 00034
12 tr2_dst_get_trace_fd [function] [call site] 00035
13 tr2_sysenv_get [function] [call site] 00036
14 getenv [call site] 00038
14 xstrdup [function] [call site] 00039
15 strdup [call site] 00040
13 strcmp [call site] 00043
13 strcasecmp [call site] 00044
13 strcmp [call site] 00045
13 strlen [call site] 00046
13 atoi [call site] 00047
13 is_absolute_path [function] [call site] 00048
14 git_is_dir_sep [function] [call site] 00049
13 is_directory [function] [call site] 00050
14 stat64 [call site] 00051
13 tr2_dst_try_auto_path [function] [call site] 00052
14 tr2_sid_get [function] [call site] 00053
15 tr2_sid_compute [function] [call site] 00054
16 getenv [call site] 00055
16 strbuf_addstr [function] [call site] 00056
17 strlen [call site] 00057
17 strbuf_add [function] [call site] 00058
18 strbuf_setlen [function] [call site] 00059
19 __assert_fail [call site] 00061
16 strbuf_addch [function] [call site] 00062
17 strbuf_avail [function] [call site] 00063
17 strbuf_grow [function] [call site] 00064
18 xrealloc [function] [call site] 00067
19 xmalloc [function] [call site] 00068
20 do_xmalloc [function] [call site] 00069
21 memory_limit_check [function] [call site] 00070
22 git_env_ulong [function] [call site] 00071
23 getenv [call site] 00072
23 git_parse_ulong [function] [call site] 00073
24 git_parse_unsigned [function] [call site] 00074
25 strchr [call site] 00075
25 __errno_location [call site] 00076
25 __errno_location [call site] 00077
25 strtoumax [call site] 00078
25 __errno_location [call site] 00079
25 __errno_location [call site] 00080
25 get_unit_factor [function] [call site] 00081
26 strcasecmp [call site] 00082
26 strcasecmp [call site] 00083
25 __errno_location [call site] 00084
25 __errno_location [call site] 00085
25 __errno_location [call site] 00086
22 const_error [function] [call site] 00090
21 const_error [function] [call site] 00094
19 memory_limit_check [function] [call site] 00095
19 realloc [call site] 00096
16 tr2_sid_append_my_sid_component [function] [call site] 00098
17 getpid [call site] 00099
17 tr2_tbuf_utc_datetime [function] [call site] 00100
18 gmtime_r [call site] 00101
17 strbuf_addstr [function] [call site] 00107
17 strbuf_addch [function] [call site] 00108
17 xgethostname [function] [call site] 00109
18 gethostname [call site] 00110
17 strbuf_add [function] [call site] 00111
17 strlen [call site] 00112
17 hash_to_hex_algop_r [function] [call site] 00113
17 strbuf_addch [function] [call site] 00114
17 strbuf_add [function] [call site] 00115
17 strbuf_addf [function] [call site] 00116
18 strbuf_vaddf [function] [call site] 00117
19 strbuf_avail [function] [call site] 00118
19 strbuf_grow [function] [call site] 00119
19 vsnprintf [call site] 00120
19 strbuf_avail [function] [call site] 00123
19 strbuf_grow [function] [call site] 00124
19 vsnprintf [call site] 00125
19 strbuf_avail [function] [call site] 00126
19 strbuf_setlen [function] [call site] 00128
16 setenv [call site] 00129
14 strrchr [call site] 00130
14 strbuf_addstr [function] [call site] 00131
14 git_is_dir_sep [function] [call site] 00132
14 strbuf_addch [function] [call site] 00133
14 strbuf_addstr [function] [call site] 00134
14 tr2_dst_too_many_files [function] [call site] 00135
15 tr2_sysenv_get [function] [call site] 00136
15 strbuf_addstr [function] [call site] 00137
15 git_is_dir_sep [function] [call site] 00138
15 strbuf_addbuf [function] [call site] 00139
16 strbuf_grow [function] [call site] 00140
16 strbuf_setlen [function] [call site] 00141
15 strbuf_addstr [function] [call site] 00142
15 opendir [call site] 00143
15 readdir64 [call site] 00144
15 closedir [call site] 00145
15 open64 [call site] 00146
15 strbuf_release [function] [call site] 00147
16 strbuf_init [function] [call site] 00148
17 strbuf_grow [function] [call site] 00149
15 strbuf_release [function] [call site] 00150
14 strbuf_setlen [function] [call site] 00151
14 strbuf_addf [function] [call site] 00152
14 open64 [call site] 00153
14 strbuf_release [function] [call site] 00154
14 tr2_dst_want_warning [function] [call site] 00155
15 tr2_sysenv_get [function] [call site] 00156
14 tr2_sysenv_display_name [function] [call site] 00157
14 tr2_dst_want_warning [function] [call site] 00160
14 tr2_sysenv_display_name [function] [call site] 00161
14 __errno_location [call site] 00162
14 tr2_dst_trace_disable [function] [call site] 00164
15 close [call site] 00165
14 strbuf_release [function] [call site] 00166
14 strbuf_release [function] [call site] 00167
13 tr2_dst_try_path [function] [call site] 00168
14 open64 [call site] 00169
14 tr2_dst_want_warning [function] [call site] 00170
14 tr2_sysenv_display_name [function] [call site] 00171
14 __errno_location [call site] 00172
14 tr2_dst_trace_disable [function] [call site] 00174
13 starts_with [function] [call site] 00175
13 tr2_dst_try_unix_domain_socket [function] [call site] 00176
14 skip_prefix [function] [call site] 00177
14 skip_prefix [function] [call site] 00178
14 skip_prefix [function] [call site] 00179
14 tr2_dst_want_warning [function] [call site] 00180
14 tr2_sysenv_display_name [function] [call site] 00181
14 tr2_dst_trace_disable [function] [call site] 00183
14 is_absolute_path [function] [call site] 00184
14 strlen [call site] 00185
14 tr2_dst_want_warning [function] [call site] 00186
14 tr2_sysenv_display_name [function] [call site] 00187
14 tr2_dst_trace_disable [function] [call site] 00189
14 tr2_dst_try_uds_connect [function] [call site] 00190
15 socket [call site] 00191
15 gitstrlcpy [function] [call site] 00192
16 strlen [call site] 00193
15 connect [call site] 00194
15 close [call site] 00195
15 __errno_location [call site] 00196
14 __errno_location [call site] 00197
14 tr2_dst_try_uds_connect [function] [call site] 00198
14 tr2_dst_want_warning [function] [call site] 00199
14 tr2_sysenv_display_name [function] [call site] 00200
14 __errno_location [call site] 00201
14 tr2_dst_trace_disable [function] [call site] 00203
13 tr2_dst_malformed_warning [function] [call site] 00204
14 tr2_sysenv_display_name [function] [call site] 00205
13 tr2_dst_trace_disable [function] [call site] 00207
10 common_exit [function] [call site] 00208
11 trace2_cmd_exit_fl [function] [call site] 00209
12 trace2_collect_process_info [function] [call site] 00210
13 trace2_is_enabled [function] [call site] 00211
13 getppid [call site] 00212
13 push_ancestry_name [function] [call site] 00213
14 stat_parent_pid [function] [call site] 00214
15 strbuf_addf [function] [call site] 00215
15 git_fopen [function] [call site] 00216
16 fopen64 [call site] 00217
16 fileno [call site] 00218
16 fclose [call site] 00219
16 fclose [call site] 00220
16 __errno_location [call site] 00221
15 strbuf_fread [function] [call site] 00222
16 strbuf_grow [function] [call site] 00223
16 fread [call site] 00224
16 strbuf_setlen [function] [call site] 00225
16 strbuf_release [function] [call site] 00226
15 parse_proc_stat [function] [call site] 00227
16 strchr [call site] 00228
16 strtol [call site] 00229
16 strbuf_add [function] [call site] 00230
15 fclose [call site] 00231
15 strbuf_release [function] [call site] 00232
15 strbuf_release [function] [call site] 00233
14 strvec_push [function] [call site] 00234
15 strvec_push_nodup [function] [call site] 00236
14 push_ancestry_name [function] [call site] 00239
15 strbuf_release [function] [call site] 00240
13 trace2_cmd_ancestry_fl [function] [call site] 00241
14 tr2_dst_trace_want [function] [call site] 00242
13 strvec_clear [function] [call site] 00243
14 strvec_init [function] [call site] 00244
12 getnanotime [function] [call site] 00245
13 highres_nanos [function] [call site] 00246
14 clock_gettime [call site] 00247
13 gettimeofday_nanos [function] [call site] 00248
14 gettimeofday [call site] 00249
13 gettimeofday_nanos [function] [call site] 00250
13 highres_nanos [function] [call site] 00251
12 tr2tls_absolute_elapsed [function] [call site] 00252
12 tr2_dst_trace_want [function] [call site] 00253
10 exit [call site] 00254
3 url_decode_internal [function] [call site] 00255
4 strbuf_addch [function] [call site] 00259
4 strbuf_addch [function] [call site] 00260
4 strbuf_addch [function] [call site] 00261
4 strbuf_detach [function] [call site] 00262
5 strbuf_grow [function] [call site] 00263
1 url_percent_decode [function] [call site] 00264
2 strlen [call site] 00265
2 url_decode_internal [function] [call site] 00266
1 url_decode_parameter_name [function] [call site] 00267
2 url_decode_internal [function] [call site] 00268
1 url_decode_parameter_value [function] [call site] 00269
2 url_decode_internal [function] [call site] 00270