fix handling of illegal characters in header values

This commit is contained in:
2021-03-12 14:47:28 +01:00
parent 7adbd8d76b
commit c05593bfae
2 changed files with 4 additions and 7 deletions

View File

@@ -279,8 +279,8 @@ class ModifyMilter(Milter.Base):
def header(self, field, value): def header(self, field, value):
try: try:
# remove surrogates # remove surrogates
field = field.encode("ascii", errors="replace") field = field.encode("ascii", errors="surrogateescape")
value = value.encode("ascii", errors="replace") value = value.encode("ascii", errors="surrogateescape")
self._fp.feed(field + b": " + value + b"\r\n") self._fp.feed(field + b": " + value + b"\r\n")
except Exception as e: except Exception as e:

View File

@@ -136,8 +136,5 @@ class MilterMessage(MIMEPart):
def replace_illegal_chars(string): def replace_illegal_chars(string):
"""Replace illegal characters in header values.""" """Remove illegal characters from header values."""
return string.replace( return "".join(string.replace("\x00", "").splitlines())
"\x00", "").replace(
"\r", "").replace(
"\n", "")