diff options
-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: |