Fuzz introspector: esi_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
114 114 1 :

['WS_Overflowed']

227 229 WS_Reset call site: 00292 /src/varnish-cache/bin/varnishd/cache/cache_ws_emu.c:205
113 113 1 :

['WS_MarkOverflow']

113 113 ws_emu_alloc call site: 00118 /src/varnish-cache/bin/varnishd/cache/cache_ws_emu.c:283
111 111 1 :

['VAS_Fail']

111 222 VSB_newbuf call site: 00016 /src/varnish-cache/lib/libvarnish/vsb.c:193
14 14 2 :

['byte_swap', 'crc_word_big']

14 14 z_crc32_z call site: 00134 /src/varnish-cache/lib/libvgz/crc32.c:731
0 183 1 :

['vep_mark_skip']

0 183 VEP_Parse call site: 00268 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:1041
0 111 1 :

['VSB_extend']

0 111 _vsb_indent call site: 00030 /src/varnish-cache/lib/libvarnish/vsb.c:166
0 2 1 :

['VSLb']

0 2 VEP_Init call site: 00112 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:1075
0 0 None 1789 5543 VEP_Parse call site: 00207 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:773
0 0 None 1789 5543 VEP_Parse call site: 00211 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:796
0 0 None 1789 5543 VEP_Parse call site: 00213 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:811
0 0 None 1789 5543 VEP_Parse call site: 00213 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:814
0 0 None 1789 5543 VEP_Parse call site: 00216 /src/varnish-cache/bin/varnishd/cache/cache_esi_parse.c:837

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 VAS_Fail [function] [call site] 00001
2 vas_default [function] [call site] 00002
3 __errno_location [call site] 00003
3 fprintf [call site] 00004
3 fprintf [call site] 00005
3 fprintf [call site] 00006
3 fprintf [call site] 00007
3 strerror [call site] 00008
3 fprintf [call site] 00009
3 VBT_dump [function] [call site] 00010
4 VSB_init [function] [call site] 00011
5 VAS_Fail [function] [call site] 00012
6 abort [call site] 00013
5 VSB_newbuf [function] [call site] 00016
6 VSB_extendsize [function] [call site] 00018
4 VSB_printf [function] [call site] 00020
5 VSB_vprintf [function] [call site] 00021
6 _assert_VSB_integrity [function] [call site] 00022
6 _assert_VSB_state [function] [call site] 00027
6 _vsb_indent [function] [call site] 00030
7 VSB_extend [function] [call site] 00031
8 VSB_extendsize [function] [call site] 00032
8 realloc [call site] 00033
6 vsnprintf [call site] 00034
6 __errno_location [call site] 00035
6 VSB_extend [function] [call site] 00036
4 VSB_indent [function] [call site] 00038
5 _assert_VSB_integrity [function] [call site] 00039
4 VBT_format [function] [call site] 00040
5 vbt_execinfo [function] [call site] 00041
6 backtrace [call site] 00042
6 VSB_printf [function] [call site] 00043
6 snprintf [call site] 00044
6 VSB_printf [function] [call site] 00046
6 backtrace_symbols [call site] 00047
6 VSB_cat [function] [call site] 00048
7 _assert_VSB_integrity [function] [call site] 00049
7 _assert_VSB_state [function] [call site] 00050
7 strchr [call site] 00052
7 VSB_bcat [function] [call site] 00053
8 _assert_VSB_integrity [function] [call site] 00054
8 _assert_VSB_state [function] [call site] 00055
8 _vsb_indent [function] [call site] 00057
8 VSB_extend [function] [call site] 00058
7 strlen [call site] 00059
6 strlen [call site] 00061
6 memcmp [call site] 00062
6 strlen [call site] 00063
4 VSB_indent [function] [call site] 00066
3 __errno_location [call site] 00067
3 strerror [call site] 00068
3 snprintf [call site] 00069
3 syslog [call site] 00071
1 VEP_Init [function] [call site] 00109
2 VSB_new_auto [function] [call site] 00129
3 VSB_newbuf [function] [call site] 00130
2 VSB_printf [function] [call site] 00132
1 VEP_Parse [function] [call site] 00149
2 COM_FEATURE [function] [call site] 00191
2 vep_mark_skip [function] [call site] 00192
3 vep_mark_common [function] [call site] 00193
2 COM_FEATURE [function] [call site] 00194
2 vep_mark_verbatim [function] [call site] 00196
3 vep_mark_common [function] [call site] 00197
2 vep_mark_verbatim [function] [call site] 00200
2 COM_FEATURE [function] [call site] 00201
2 vep_mark_verbatim [function] [call site] 00202
2 vep_mark_verbatim [function] [call site] 00203
2 vep_mark_skip [function] [call site] 00204
2 vep_mark_verbatim [function] [call site] 00205
2 vep_mark_verbatim [function] [call site] 00207
2 vep_mark_skip [function] [call site] 00210
2 vep_mark_skip [function] [call site] 00211
2 vep_error [function] [call site] 00212
2 vep_error [function] [call site] 00213
2 vep_error [function] [call site] 00214
2 vep_error [function] [call site] 00215
2 vep_error [function] [call site] 00216
2 vep_mark_skip [function] [call site] 00219
2 vep_error [function] [call site] 00220
2 vep_error [function] [call site] 00222
2 vep_mark_skip [function] [call site] 00223
2 VSB_destroy [function] [call site] 00224
3 _assert_VSB_integrity [function] [call site] 00226
2 vep_error [function] [call site] 00233
2 VSB_new_auto [function] [call site] 00235
2 vep_error [function] [call site] 00238
2 VSB_putc [function] [call site] 00240
3 VSB_put_byte [function] [call site] 00241
4 _assert_VSB_integrity [function] [call site] 00242
4 _assert_VSB_state [function] [call site] 00243
4 _vsb_indent [function] [call site] 00244
4 VSB_extend [function] [call site] 00245
2 vep_error [function] [call site] 00246
2 VSB_finish [function] [call site] 00247
3 _assert_VSB_integrity [function] [call site] 00248
3 _assert_VSB_state [function] [call site] 00249
3 __errno_location [call site] 00250
2 VSB_destroy [function] [call site] 00252
2 VSB_finish [function] [call site] 00253
2 vep_match [function] [call site] 00256
3 strlen [call site] 00258
2 strlen [call site] 00260
2 vep_match [function] [call site] 00263
2 strlen [call site] 00265
2 vep_mark_verbatim [function] [call site] 00266
2 vep_mark_skip [function] [call site] 00268
2 vep_mark_skip [function] [call site] 00269
2 vep_mark_pending [function] [call site] 00270
1 VEP_Finish [function] [call site] 00273
2 VSB_destroy [function] [call site] 00275
2 VSB_destroy [function] [call site] 00276
2 vep_error [function] [call site] 00277
2 vep_mark_common [function] [call site] 00278
2 vep_emit_common [function] [call site] 00279
2 VSB_finish [function] [call site] 00280
2 VSB_len [function] [call site] 00282
3 _assert_VSB_integrity [function] [call site] 00283
2 VSB_destroy [function] [call site] 00284
1 VSB_destroy [function] [call site] 00285