Mercurial > cpython-lru_cache-weakref
diff Lib/email/Message.py @ 24912:0ee48aefa474 legacy-trunk
get_content_type(), get_content_maintype(), get_content_subtype(): RFC
2045, section 5.2 states that if the Content-Type: header is
syntactically invalid, the default type should be text/plain.
Implement minimal sanity checking of the header -- it must have
exactly one slash in it. This closes SF patch #597593 by Skip, but in
a different way.
Note that these methods used to raise ValueError for invalid ctypes,
but now they won't.
| author | Barry Warsaw <barry@python.org> |
|---|---|
| date | Tue, 20 Aug 2002 14:50:09 +0000 |
| parents | 8b4a165baaee |
| children | c744144c4049 |
line wrap: on
line diff
--- a/Lib/email/Message.py Tue Aug 20 14:47:30 2002 +0000 +++ b/Lib/email/Message.py Tue Aug 20 14:50:09 2002 +0000 @@ -422,7 +422,11 @@ if value is missing: # This should have no parameters return self.get_default_type() - return paramre.split(value)[0].lower().strip() + ctype = paramre.split(value)[0].lower().strip() + # RFC 2045, section 5.2 says if its invalid, use text/plain + if ctype.count('/') <> 1: + return 'text/plain' + return ctype def get_content_maintype(self): """Returns the message's main content type. @@ -432,8 +436,6 @@ ValueError is raised. """ ctype = self.get_content_type() - if ctype.count('/') <> 1: - raise ValueError, 'No maintype found in: %s' % ctype return ctype.split('/')[0] def get_content_subtype(self): @@ -444,8 +446,6 @@ ValueError is raised. """ ctype = self.get_content_type() - if ctype.count('/') <> 1: - raise ValueError, 'No subtype found in: %s' % ctype return ctype.split('/')[1] def get_default_type(self):
