[3.9] gh-121650: Encode newlines in headers, and verify headers are sound (GH-122233) by ambv · Pull Request #122610 · python/cpython (original) (raw)
Per RFC 2047:
[...] these encoding schemes allow the
encoding of arbitrary octet values, mail readers that implement this
decoding should also ensure that display of the decoded data on the
recipient's terminal will not cause unwanted side-effects
It seems that the "quoted-word" scheme is a valid way to include a newline character in a header value, just like we already allow undecodable bytes or control characters.
They do need to be properly quoted when serialized to text, though.
This should fail for custom fold() implementations that aren't careful about newlines.
(cherry-picked from commit 0976339)