From: Martin v. Löwis Date: Wed, 25 Aug 2010 07:38:15 +0000 (+0000) Subject: Issue #1027206: getnameinfo is now restricted to numeric addresses as input. X-Git-Tag: v3.2a2~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=112c0f34119fb2fe127bf54393bf06f5c334836a;p=python Issue #1027206: getnameinfo is now restricted to numeric addresses as input. --- diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py index 60e5bf7e2c..5a8aa5a905 100644 --- a/Lib/test/test_socket.py +++ b/Lib/test/test_socket.py @@ -637,6 +637,10 @@ class GeneralModuleTests(unittest.TestCase): flags=socket.AI_PASSIVE) self.assertEqual(a, b) + def test_getnameinfo(self): + # only IP addresses are allowed + self.assertRaises(socket.error, socket.getnameinfo, ('mail.python.org',0), 0) + def test_idna(self): # these should all be successful socket.gethostbyname('испытание.python.org') diff --git a/Misc/NEWS b/Misc/NEWS index 1cb67ccf47..7aebbe73fa 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -70,7 +70,8 @@ Extensions ---------- - Issue #1027206: Support IDNA in gethostbyname, gethostbyname_ex, - getaddrinfo and gethostbyaddr. + getaddrinfo and gethostbyaddr. getnameinfo is now restricted to numeric + addresses as input. - Issue #9214: Set operations on a KeysView or ItemsView in collections now correctly return a set. (Patch by Eli Bendersky.) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 709c85e213..8c743d87f5 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -3969,6 +3969,7 @@ socket_getnameinfo(PyObject *self, PyObject *args) memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_DGRAM; /* make numeric port happy */ + hints.ai_flags = AI_NUMERICHOST; /* don't do any name resolution */ Py_BEGIN_ALLOW_THREADS ACQUIRE_GETADDRINFO_LOCK error = getaddrinfo(hostp, pbuf, &hints, &res);