https://github.com/python/cpython/commit/7b49ec784a350cc290cb82b0d35f00125dd40dc9
commit: 7b49ec784a350cc290cb82b0d35f00125dd40dc9
branch: 3.13
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-10-08T23:24:30Z
summary:
[3.13] gh-139748: Fix socket.if_nametoindex() Argument Clinic (#139815)
gh-139748: Fix socket.if_nametoindex() Argument Clinic
Fix a reference leak.
files:
M Modules/clinic/socketmodule.c.h
M Modules/socketmodule.c
diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h
index 3f4056efff2fec..4db27a441f85a6 100644
--- a/Modules/clinic/socketmodule.c.h
+++ b/Modules/clinic/socketmodule.c.h
@@ -239,7 +239,7 @@ static PyObject *
_socket_socket_if_nametoindex(PySocketSockObject *self, PyObject *arg)
{
PyObject *return_value = NULL;
- PyObject *oname;
+ PyObject *oname = NULL;
if (!PyUnicode_FSConverter(arg, &oname)) {
goto exit;
@@ -247,6 +247,9 @@ _socket_socket_if_nametoindex(PySocketSockObject *self,
PyObject *arg)
return_value = _socket_socket_if_nametoindex_impl(self, oname);
exit:
+ /* Cleanup for oname */
+ Py_XDECREF(oname);
+
return return_value;
}
@@ -259,4 +262,4 @@ _socket_socket_if_nametoindex(PySocketSockObject *self,
PyObject *arg)
#ifndef _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
#define _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
#endif /* !defined(_SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF) */
-/*[clinic end generated code: output=eb37b5d88a1e4661 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2a58294cf2c87e33 input=a9049054013a1b77]*/
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index a6910df6fba64e..af7f81701b01aa 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -7098,7 +7098,7 @@ Returns a list of network interface information (index,
name) tuples.");
/*[clinic input]
_socket.socket.if_nametoindex
- oname: object(converter="PyUnicode_FSConverter")
+ oname: unicode_fs_encoded
/
Returns the interface index corresponding to the interface name if_name.
@@ -7106,7 +7106,7 @@ Returns the interface index corresponding to the
interface name if_name.
static PyObject *
_socket_socket_if_nametoindex_impl(PySocketSockObject *self, PyObject *oname)
-/*[clinic end generated code: output=f7fc00511a309a8e input=662688054482cd46]*/
+/*[clinic end generated code: output=f7fc00511a309a8e input=242c01253c533053]*/
{
#ifdef MS_WINDOWS
NET_IFINDEX index;
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]