diff options
| author | Barry Warsaw <barry@python.org> | 2007-03-14 04:59:50 (GMT) |
|---|---|---|
| committer | Barry Warsaw <barry@python.org> | 2007-03-14 04:59:50 (GMT) |
| commit | dcd24ae5015bb94ef83015a4f584e5b8f173e999 (patch) | |
| tree | f0de750ea1f48bb6de48669130272296391f04ad /Lib/email/header.py | |
| parent | 47c52a8b60444e4f0aae9c0e91794d214b68bd45 (diff) | |
| download | cpython-dcd24ae5015bb94ef83015a4f584e5b8f173e999.zip cpython-dcd24ae5015bb94ef83015a4f584e5b8f173e999.tar.gz cpython-dcd24ae5015bb94ef83015a4f584e5b8f173e999.tar.bz2 | |
SF bug #1582282; decode_header() incorrectly splits not-conformant RFC
2047-like headers where there is no whitespace between encoded words. This
fix changes the matching regexp to include a trailing lookahead assertion that
the closing ?= must be followed by whitespace, newline, or end-of-string.
This also changes the regexp to add the MULTILINE flag.
Diffstat (limited to 'Lib/email/header.py')
| -rw-r--r-- | Lib/email/header.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Lib/email/header.py b/Lib/email/header.py index 183c337..e139ccf 100644 --- a/Lib/email/header.py +++ b/Lib/email/header.py @@ -39,7 +39,8 @@ ecre = re.compile(r''' \? # literal ? (?P<encoded>.*?) # non-greedy up to the next ?= is the encoded string \?= # literal ?= - ''', re.VERBOSE | re.IGNORECASE) + (?=[ \t]|$) # whitespace or the end of the string + ''', re.VERBOSE | re.IGNORECASE | re.MULTILINE) # Field name regexp, including trailing colon, but not separating whitespace, # according to RFC 2822. Character range is from tilde to exclamation mark. |
