diff options
author | Srinivas Reddy Thatiparthy (తాటిపర్తి శ్రీనివాస్ రెడ్డి) <thatiparthysreenivas@gmail.com> | 2025-03-30 12:29:29 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-30 12:29:29 (GMT) |
commit | c432d0147bdf1a66604e7a3d6a71660ae79b5f45 (patch) | |
tree | 6ea2c74ba2ad5eb95074fe4accc91d014c27c7bd /Lib/email/policy.py | |
parent | 55150a79cacbce44f50cea128c511782df0ab277 (diff) | |
download | cpython-c432d0147bdf1a66604e7a3d6a71660ae79b5f45.zip cpython-c432d0147bdf1a66604e7a3d6a71660ae79b5f45.tar.gz cpython-c432d0147bdf1a66604e7a3d6a71660ae79b5f45.tar.bz2 |
gh-127794: Validate email header names according to RFC 5322 (#127820)
`email.message.Message` objects now validate header names specified via `__setitem__`
or `add_header` according to RFC 5322, §2.2 [1].
In particular, callers should expect a ValueError to be raised for invalid header names.
[1]: https://datatracker.ietf.org/doc/html/rfc5322#section-2.2
---------
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: R. David Murray <rdmurray@bitdance.com>
Diffstat (limited to 'Lib/email/policy.py')
-rw-r--r-- | Lib/email/policy.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/email/policy.py b/Lib/email/policy.py index 6e109b6..4169150 100644 --- a/Lib/email/policy.py +++ b/Lib/email/policy.py @@ -4,7 +4,13 @@ code that adds all the email6 features. import re import sys -from email._policybase import Policy, Compat32, compat32, _extend_docstrings +from email._policybase import ( + Compat32, + Policy, + _extend_docstrings, + compat32, + validate_header_name +) from email.utils import _has_surrogates from email.headerregistry import HeaderRegistry as HeaderRegistry from email.contentmanager import raw_data_manager @@ -138,6 +144,7 @@ class EmailPolicy(Policy): CR or LF characters. """ + validate_header_name(name) if hasattr(value, 'name') and value.name.lower() == name.lower(): return (name, value) if isinstance(value, str) and len(value.splitlines())>1: |