From 486cb0ac2ac3cf93770a469a37975e9bd32d8ccf Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Tue, 11 May 2004 22:23:59 +0000 Subject: Tests for message/external-body and for duplicate boundary lines. --- Lib/email/FeedParser.py | 15 ++++++++++++--- 1 file 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: -- cgit v0.12