From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 21 Apr 2021 23:36:36 +0000 (-0700) Subject: bpo-26227: Fixes decoding of host names on Windows from ANSI instead of UTF-8 (GH... X-Git-Tag: v3.8.10~51 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f7bc44170b4bdd16c46b4b6acf7673ffc24dfb19;p=thirdparty%2FPython%2Fcpython.git bpo-26227: Fixes decoding of host names on Windows from ANSI instead of UTF-8 (GH-25510) (cherry picked from commit dc516ef8395d15da0ab225eb0dceb2e0581f51ca) Co-authored-by: Steve Dower --- diff --git a/Misc/NEWS.d/next/Windows/2021-04-21-23-37-34.bpo-26227.QMY_eA.rst b/Misc/NEWS.d/next/Windows/2021-04-21-23-37-34.bpo-26227.QMY_eA.rst new file mode 100644 index 000000000000..d6826fb39706 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2021-04-21-23-37-34.bpo-26227.QMY_eA.rst @@ -0,0 +1,2 @@ +Fixed decoding of host names in :func:`socket.gethostbyaddr` and +:func:`socket.gethostbyname_ex`. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 3e65dc027a38..5406f8b46f24 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -5474,7 +5474,7 @@ sock_decode_hostname(const char *name) #ifdef MS_WINDOWS /* Issue #26227: gethostbyaddr() returns a string encoded * to the ANSI code page */ - return PyUnicode_DecodeFSDefault(name); + return PyUnicode_DecodeMBCS(name, strlen(name), "surrogatepass"); #else /* Decode from UTF-8 */ return PyUnicode_FromString(name);