diff options
author | Barry Warsaw <barry@python.org> | 2004-05-11 22:23:59 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2004-05-11 22:23:59 (GMT) |
commit | 486cb0ac2ac3cf93770a469a37975e9bd32d8ccf (patch) | |
tree | cc20fc1b471c03d5c9937f04c4ad04a5d00e66b4 /Lib | |
parent | b067e6287b9c72fda50d2d1c350fc72a2c059b44 (diff) | |
download | cpython-486cb0ac2ac3cf93770a469a37975e9bd32d8ccf.zip cpython-486cb0ac2ac3cf93770a469a37975e9bd32d8ccf.tar.gz cpython-486cb0ac2ac3cf93770a469a37975e9bd32d8ccf.tar.bz2 |
Tests for message/external-body and for duplicate boundary lines.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/email/FeedParser.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/Lib/email/FeedParser.py b/Lib/email/FeedParser.py index d28170e..294a6a5 100644 --- a/Lib/email/FeedParser.py +++ b/Lib/email/FeedParser.py @@ -306,9 +306,18 @@ class FeedParser: capturing_preamble = False self._input.unreadline(line) continue - # We saw a boundary separating two parts. Recurse to - # parse this subpart; the input stream points at the - # subpart's first line. + # We saw a boundary separating two parts. Consume any + # multiple boundary lines that may be following. Our + # interpretation of RFC 2046 BNF grammar does not produce + # body parts within such double boundaries. + while True: + line = self._input.readline() + mo = boundaryre.match(line) + if not mo: + self._input.unreadline(line) + break + # Recurse to parse this subpart; the input stream points + # at the subpart's first line. self._input.push_eof_matcher(boundaryre.match) for retval in self._parsegen(): if retval is NeedMoreData: |