8000 Simpler max_num_fields logic · python/cpython@f8966df · GitHub
[go: up one dir, main page]

Skip to content

Commit f8966df

Browse files
Simpler max_num_fields logic
1 parent 16bf780 commit f8966df

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

Lib/cgi.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -636,29 +636,29 @@ def read_multi(self, environ, keep_blank_values, strict_parsing):
636636

637637
# Propagate max_num_fields into the sub class appropriately
638638
max_num_fields = self.max_num_fields
639-
sub_max_num_fields = self.max_num_fields
640639
if max_num_fields is not None:
641-
sub_max_num_fields -= len(self.list)
640+
max_num_fields -= len(self.list)
642641

643642
klass = self.FieldStorageClass or self.__class__
644643
part = klass(self.fp, {}, ib,
645644
environ, keep_blank_values, strict_parsing,
646-
sub_max_num_fields)
645+
max_num_fields)
647646

648647
# Throw first part away
649648
while not part.done:
650649
headers = rfc822.Message(self.fp)
651650
part = klass(self.fp, headers, ib,
652651
environ, keep_blank_values, strict_parsing,
653-
sub_max_num_fields)
652+
max_num_fields)
654653

655-
if max_num_fields is not None and part.list:
656-
max_num_fields -= len(part.list)
657-
sub_max_num_fields -= len(part.list)
654+
if max_num_fields is not None:
655+
max_num_fields -= 1
656+
if part.list:
657+
max_num_fields -= len(part.list)
658+
if max_num_fields < 0:
659+
raise ValueError('Max number of fields exceeded')
658660

659661
self.list.append(part)
660-
if max_num_fields is not None and max_num_fields < len(self.list):
661-
raise ValueError('Max number of fields exceeded')
662662
self.skip_lines()
663663

664664
def read_single(self):

0 commit comments

Comments
 (0)
0