fix handling of illegal characters in header values
This commit is contained in:
@@ -279,8 +279,8 @@ class ModifyMilter(Milter.Base):
|
||||
def header(self, field, value):
|
||||
try:
|
||||
# remove surrogates
|
||||
field = field.encode("ascii", errors="replace")
|
||||
value = value.encode("ascii", errors="replace")
|
||||
field = field.encode("ascii", errors="surrogateescape")
|
||||
value = value.encode("ascii", errors="surrogateescape")
|
||||
|
||||
self._fp.feed(field + b": " + value + b"\r\n")
|
||||
except Exception as e:
|
||||
|
||||
@@ -136,8 +136,5 @@ class MilterMessage(MIMEPart):
|
||||
|
||||
|
||||
def replace_illegal_chars(string):
|
||||
"""Replace illegal characters in header values."""
|
||||
return string.replace(
|
||||
"\x00", "").replace(
|
||||
"\r", "").replace(
|
||||
"\n", "")
|
||||
"""Remove illegal characters from header values."""
|
||||
return "".join(string.replace("\x00", "").splitlines())
|
||||
|
||||
Reference in New Issue
Block a user