https://github.com/python/cpython/commit/2907d93889b67cda4041c4cb716521ee70af3703 commit: 2907d93889b67cda4041c4cb716521ee70af3703 branch: 2.7 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: GitHub <noreply at github.com> date: 2018年11月15日T01:25:58-08:00 summary: Fix a possible reference leak in _socket.getaddrinfo(). (GH-10543) "single" needs to be decrefed if PyList_Append() fails. (cherry picked from commit 4c596d54aa6a55e9d2a3db78891e656ebbfb63c8) Co-authored-by: Zackery Spytz <zspytz at gmail.com> files: M Modules/socketmodule.c diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 634c1b90778b..013975455c45 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -4249,9 +4249,11 @@ socket_getaddrinfo(PyObject *self, PyObject *args) if (single == NULL) goto err; - if (PyList_Append(all, single)) + if (PyList_Append(all, single)) { + Py_DECREF(single); goto err; - Py_XDECREF(single); + } + Py_DECREF(single); } Py_XDECREF(idna); if (res0)