0
0
mirror of https://github.com/python/cpython.git synced 2024-11-29 00:56:12 +01:00
cpython/Misc/NEWS.d
Petr Viktorin 0976339818
gh-121650: Encode newlines in headers, and verify headers are sound (GH-122233)
## Encode header parts that contain newlines

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.


## Verify that email headers are well-formed

This should fail for custom fold() implementations that aren't careful
about newlines.


Co-authored-by: Bas Bloemsaat <bas@bloemsaat.org>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-07-31 00:19:48 +02:00
..
next gh-121650: Encode newlines in headers, and verify headers are sound (GH-122233) 2024-07-31 00:19:48 +02:00
3.5.0.rst
3.5.0a1.rst
3.5.0a2.rst
3.5.0a3.rst
3.5.0a4.rst
3.5.0b1.rst
3.5.0b2.rst
3.5.0b3.rst
3.5.0b4.rst
3.5.0rc1.rst
3.5.0rc2.rst
3.5.0rc3.rst
3.5.0rc4.rst
3.5.1.rst
3.5.1rc1.rst
3.5.2.rst
3.5.2rc1.rst
3.5.3.rst
3.5.3rc1.rst
3.5.4.rst
3.5.4rc1.rst
3.5.5.rst
3.5.5rc1.rst
3.6.0.rst
3.6.0a1.rst
3.6.0a2.rst
3.6.0a3.rst
3.6.0a4.rst
3.6.0b1.rst
3.6.0b2.rst
3.6.0b3.rst
3.6.0b4.rst
3.6.0rc1.rst
3.6.0rc2.rst
3.6.1.rst
3.6.1rc1.rst
3.6.2.rst
3.6.2rc1.rst
3.6.2rc2.rst
3.6.3.rst
3.6.3rc1.rst
3.6.4.rst
3.6.4rc1.rst
3.6.5.rst
3.6.5rc1.rst
3.6.6.rst
3.6.6rc1.rst
3.7.0.rst
3.7.0a1.rst
3.7.0a2.rst
3.7.0a3.rst
3.7.0a4.rst
3.7.0b1.rst
3.7.0b2.rst
3.7.0b3.rst
3.7.0b4.rst
3.7.0b5.rst
3.7.0rc1.rst
3.8.0a1.rst
3.8.0a2.rst
3.8.0a3.rst
3.8.0a4.rst
3.8.0b1.rst
3.9.0a1.rst
3.9.0a2.rst
3.9.0a3.rst
3.9.0a4.rst
3.9.0a5.rst
3.9.0a6.rst
3.9.0b1.rst
3.10.0a1.rst
3.10.0a2.rst
3.10.0a3.rst
3.10.0a4.rst
3.10.0a5.rst
3.10.0a6.rst
3.10.0a7.rst
3.10.0b1.rst
3.11.0a1.rst
3.11.0a2.rst
3.11.0a3.rst
3.11.0a4.rst
3.11.0a5.rst
3.11.0a6.rst
3.11.0a7.rst
3.11.0b1.rst
3.12.0a1.rst
3.12.0a2.rst
3.12.0a3.rst
3.12.0a4.rst
3.12.0a5.rst
3.12.0a6.rst
3.12.0a7.rst
3.12.0b1.rst
3.13.0a1.rst
3.13.0a2.rst
3.13.0a3.rst
3.13.0a4.rst
3.13.0a5.rst
3.13.0a6.rst
3.13.0b1.rst