summaryrefslogtreecommitdiffstats
path: root/Lib/email/feedparser.py
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2011-06-22 17:47:53 (GMT)
committerR David Murray <rdmurray@bitdance.com>2011-06-22 17:47:53 (GMT)
commit749073af13fcb389059b182290f5cbc953222681 (patch)
tree9da44b14da5872581f1655829522841dd59e1060 /Lib/email/feedparser.py
parent11cc475be79c123be0e587b12662cc70b7518348 (diff)
downloadcpython-749073af13fcb389059b182290f5cbc953222681.zip
cpython-749073af13fcb389059b182290f5cbc953222681.tar.gz
cpython-749073af13fcb389059b182290f5cbc953222681.tar.bz2
#1874: detect invalid multipart CTE and report it as a defect.
Diffstat (limited to 'Lib/email/feedparser.py')
-rw-r--r--Lib/email/feedparser.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/email/feedparser.py b/Lib/email/feedparser.py
index 60de49e..e754d89 100644
--- a/Lib/email/feedparser.py
+++ b/Lib/email/feedparser.py
@@ -300,6 +300,11 @@ class FeedParser:
lines.append(line)
self._cur.set_payload(EMPTYSTRING.join(lines))
return
+ # Make sure a valid content type was specified per RFC 2045:6.4.
+ if (self._cur.get('content-transfer-encoding', '8bit').lower()
+ not in ('7bit', '8bit', 'binary')):
+ defect = errors.InvalidMultipartContentTransferEncodingDefect()
+ self.policy.handle_defect(self._cur, defect)
# Create a line match predicate which matches the inter-part
# boundary as well as the end-of-multipart boundary. Don't push
# this onto the input stream until we've scanned past the