[3.13] gh-139748: Fix socket.if_nametoindex() Argument Clinic (#139815)

gh-139748: Fix socket.if_nametoindex() Argument Clinic

Fix a reference leak.
This commit is contained in:
Victor Stinner 2025-10-09 01:24:30 +02:00 committed by GitHub
parent 8234841e5b
commit 7b49ec784a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 7 additions and 4 deletions

View file

@ -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 @@ exit:
#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]*/

View file

@ -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;