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):
|
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:
|
||||||
|
|||||||
@@ -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", "")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user