]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-146245: Fix reference and buffer leaks via audit hook in socket module...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 22 Mar 2026 11:51:54 +0000 (12:51 +0100)
committerGitHub <noreply@github.com>
Sun, 22 Mar 2026 11:51:54 +0000 (11:51 +0000)
(cherry picked from commit c30fae4bea9f9ba07833e97eb542754c26610765)

Co-authored-by: AN Long <aisk@users.noreply.github.com>
Misc/NEWS.d/next/Core_and_Builtins/2026-03-21-08-48-25.gh-issue-146245.cqM3_4.rst [new file with mode: 0644]
Modules/socketmodule.c

diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-03-21-08-48-25.gh-issue-146245.cqM3_4.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-03-21-08-48-25.gh-issue-146245.cqM3_4.rst
new file mode 100644 (file)
index 0000000..f52eaa0
--- /dev/null
@@ -0,0 +1 @@
+Fixed reference leaks in :mod:`socket` when audit hooks raise exceptions in :func:`socket.getaddrinfo` and :meth:`!socket.sendto`.
index 37d6209a21aefeed488151d213743bfcb68eb88d..4ea2de9f40897986741c48f8d2f8b9e650579612 100644 (file)
@@ -4582,6 +4582,7 @@ sock_sendto(PySocketSockObject *s, PyObject *args)
     }
 
     if (PySys_Audit("socket.sendto", "OO", s, addro) < 0) {
+        PyBuffer_Release(&pbuf);
         return NULL;
     }
 
@@ -6801,7 +6802,7 @@ socket_getaddrinfo(PyObject *self, PyObject *args, PyObject* kwargs)
 
     if (PySys_Audit("socket.getaddrinfo", "OOiii",
                     hobj, pobj, family, socktype, protocol) < 0) {
-        return NULL;
+        goto err;
     }
 
     memset(&hints, 0, sizeof(hints));