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]

Reply via email to