Fuzz introspector: fuzz_werkzeug_formparser
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
139 0 EP call site: 00000 werkzeug.formparser.MultiPartParser.parse

Fuzzer calltree

0 ...fuzz_werkzeug_formparser.TestOneInput [function] [call site] 00000
1 werkzeug.formparser.FormDataParser.__init__ [function] [call site] 00001
2 typing.cast [function] [call site] 00002
1 io.BytesIO [function] [call site] 00003
1 werkzeug.formparser.FormDataParser.parse [function] [call site] 00004
2 werkzeug.formparser.FormDataParser._parse_multipart [function] [call site] 00005
3 options.get [function] [call site] 00006
3 werkzeug.formparser.MultiPartParser.__init__ [function] [call site] 00007
4 typing.cast [function] [call site] 00008
3 parser.parse [function] [call site] 00009
2 werkzeug.formparser.FormDataParser._parse_urlencoded [function] [call site] 00010
3 urllib.parse.parse_qsl [function] [call site] 00011
3 stream.read [function] [call site] 00012
1 io.BytesIO [function] [call site] 00013
1 werkzeug.formparser.FormDataParser.parse [function] [call site] 00014
1 io.BytesIO [function] [call site] 00015
1 werkzeug.formparser.FormDataParser.parse [function] [call site] 00016
1 <builtin>.len [function] [call site] 00017
1 werkzeug.formparser.MultiPartParser.__init__ [function] [call site] 00018
1 io.BytesIO [function] [call site] 00019
1 <builtin>.len [function] [call site] 00020
1 werkzeug.formparser.MultiPartParser.parse [function] [call site] 00021
2 werkzeug.sansio.multipart.MultipartDecoder.__init__ [function] [call site] 00022
3 <builtin>.bytearray [function] [call site] 00023
3 re.compile [function] [call site] 00024
3 re.escape [function] [call site] 00025
3 re.compile [function] [call site] 00026
3 re.escape [function] [call site] 00027
2 werkzeug.formparser._chunk_iter [function] [call site] 00028
2 werkzeug.sansio.multipart.MultipartDecoder.receive_data [function] [call site] 00029
3 <builtin>.len [function] [call site] 00030
3 <builtin>.len [function] [call site] 00031
2 werkzeug.sansio.multipart.MultipartDecoder.next_event [function] [call site] 00032
3 match.group [function] [call site] 00033
3 match.start [function] [call site] 00034
3 <builtin>.bytes [function] [call site] 00035
3 match.end [function] [call site] 00036
3 <builtin>.max [function] [call site] 00037
3 <builtin>.len [function] [call site] 00038
3 <builtin>.len [function] [call site] 00039
3 BLANK_LINE_RE.search [function] [call site] 00040
3 match.start [function] [call site] 00041
3 werkzeug.sansio.multipart.MultipartDecoder._parse_headers [function] [call site] 00042
4 HEADER_CONTINUATION_RE.sub [function] [call site] 00043
4 data.splitlines [function] [call site] 00044
4 line.strip [function] [call site] 00045
4 line.decode [function] [call site] 00046
4 name.strip [function] [call site] 00047
4 value.strip [function] [call site] 00048
4 headers.append [function] [call site] 00049
3 match.start [function] [call site] 00050
3 match.end [function] [call site] 00051
3 werkzeug.http.parse_options_header [function] [call site] 00052
4 value.partition [function] [call site] 00053
4 value.strip [function] [call site] 00054
4 rest.strip [function] [call site] 00055
4 _parameter_key_re.match [function] [call site] 00056
4 _parameter_token_value_re.match [function] [call site] 00059
4 parts.append [function] [call site] 00061
4 <builtin>.len [function] [call site] 00062
4 parts.append [function] [call site] 00063
4 rest.find [function] [call site] 00064
4 _charset_value_re.match [function] [call site] 00065
4 match.groups [function] [call site] 00066
4 encoding.lower [function] [call site] 00067
4 urllib.parse.unquote [function] [call site] 00068
4 _continuation_re.search [function] [call site] 00069
4 match.start [function] [call site] 00070
4 options.get [function] [call site] 00071
3 extra.get [function] [call site] 00072
3 typing.cast [function] [call site] 00073
3 extra.get [function] [call site] 00074
3 <builtin>.len [function] [call site] 00075
3 <builtin>.max [function] [call site] 00076
3 werkzeug.sansio.multipart.MultipartDecoder._parse_data [function] [call site] 00077
4 LINE_BREAK_RE.match [function] [call site] 00078
4 typing.cast [function] [call site] 00079
4 werkzeug.sansio.multipart.MultipartDecoder._last_partial_boundary_index [function] [call site] 00080
5 <builtin>.len [function] [call site] 00081
5 <builtin>.len [function] [call site] 00082
5 data.rindex [function] [call site] 00083
5 <builtin>.len [function] [call site] 00084
5 <builtin>.len [function] [call site] 00085
5 data.rindex [function] [call site] 00086
5 <builtin>.len [function] [call site] 00087
5 <builtin>.len [function] [call site] 00088
5 <builtin>.min [function] [call site] 00089
4 match.group [function] [call site] 00090
4 match.start [function] [call site] 00091
4 match.end [function] [call site] 00092
4 werkzeug.sansio.multipart.MultipartDecoder._last_partial_boundary_index [function] [call site] 00093
4 <builtin>.bytes [function] [call site] 00094
3 werkzeug.sansio.multipart.MultipartDecoder._parse_data [function] [call site] 00095
3 <builtin>.bytes [function] [call site] 00096
3 <builtin>.isinstance [function] [call site] 00097
2 <builtin>.isinstance [function] [call site] 00098
2 <builtin>.isinstance [function] [call site] 00099
2 <builtin>.isinstance [function] [call site] 00100
2 werkzeug.formparser.MultiPartParser.start_file_streaming [function] [call site] 00101
3 event.headers.get [function] [call site] 00102
3 werkzeug._internal._plain_int [function] [call site] 00103
4 value.strip [function] [call site] 00104
4 _plain_int_re.fullmatch [function] [call site] 00105
4 <builtin>.int [function] [call site] 00106
3 werkzeug.formparser.default_stream_factory [function] [call site] 00107
4 tempfile.SpooledTemporaryFile [function] [call site] 00108
2 <builtin>.isinstance [function] [call site] 00109
2 <builtin>.len [function] [call site] 00110
2 tempfile.SpooledTemporaryFile.append [function] [call site] 00111
2 tempfile.SpooledTemporaryFile.write [function] [call site] 00112
2 <builtin>.isinstance [function] [call site] 00113
2 werkzeug.formparser.MultiPartParser.get_part_charset [function] [call site] 00114
3 headers.get [function] [call site] 00115
3 werkzeug.http.parse_options_header [function] [call site] 00116
3 parameters.get [function] [call site] 00117
2 fields.append [function] [call site] 00118
2 typing.cast [function] [call site] 00119
2 tempfile.SpooledTemporaryFile.seek [function] [call site] 00120
2 files.append [function] [call site] 00121
2 werkzeug.datastructures.file_storage.FileStorage.__init__ [function] [call site] 00122
3 io.BytesIO [function] [call site] 00123
3 werkzeug.datastructures.file_storage._guess_filename [function] [call site] 00124
4 os.fsdecode [function] [call site] 00125
4 <builtin>.getattr [function] [call site] 00126
4 os.fsdecode [function] [call site] 00127
3 werkzeug.datastructures.headers.Headers.__init__ [function] [call site] 00128
4 werkzeug.datastructures.headers.Headers.extend [function] [call site] 00129
5 werkzeug.datastructures.structures.iter_multi_items [function] [call site] 00130
6 <builtin>.isinstance [function] [call site] 00131
6 mapping.items [function] [call site] 00132
6 <builtin>.isinstance [function] [call site] 00133
6 mapping.items [function] [call site] 00134
6 <builtin>.isinstance [function] [call site] 00135
5 werkzeug.datastructures.structures.iter_multi_items [function] [call site] 00136
3 <builtin>.str [function] [call site] 00137
2 werkzeug.sansio.multipart.MultipartDecoder.next_event [function] [call site] 00138
1 <builtin>.str [function] [call site] 00139