diff --git a/Lib/xmlrpc/server.py b/Lib/xmlrpc/server.py index 63df97fbce8..eb231d3db49 100644 --- a/Lib/xmlrpc/server.py +++ b/Lib/xmlrpc/server.py @@ -499,7 +499,9 @@ def do_POST(self): if hasattr(self.server, '_send_traceback_header') and \ self.server._send_traceback_header: self.send_header("X-exception", str(e)) - self.send_header("X-traceback", traceback.format_exc()) + trace = traceback.format_exc() + trace = str(trace.encode('ASCII', 'backslashreplace'), 'ASCII') + self.send_header("X-traceback", trace) self.send_header("Content-length", "0") self.end_headers() diff --git a/Misc/NEWS b/Misc/NEWS index c583fa372f2..81683c98c59 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -312,6 +312,9 @@ C-API Library ------- +- Issue #7606: XML-RPC traceback stored in X-traceback is now encoded to ASCII + using backslashreplace error handler + - Issue #8412: os.system() now accepts bytes, bytearray and str with surrogates.