summaryrefslogtreecommitdiffstats
path: root/Lib/email/policy.py
diff options
context:
space:
mode:
authorSrinivas Reddy Thatiparthy (తాటిపర్తి శ్రీనివాస్ రెడ్డి) <thatiparthysreenivas@gmail.com>2025-03-30 12:29:29 (GMT)
committerGitHub <noreply@github.com>2025-03-30 12:29:29 (GMT)
commitc432d0147bdf1a66604e7a3d6a71660ae79b5f45 (patch)
tree6ea2c74ba2ad5eb95074fe4accc91d014c27c7bd /Lib/email/policy.py
parent55150a79cacbce44f50cea128c511782df0ab277 (diff)
downloadcpython-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.py9
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: