From 69e94e0a1b9569a247725887d0b7f29b26802f71 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 24 Mar 2025 15:51:32 +0100 Subject: [PATCH] gh-111178: Fix function signatures for test_socket (#131667) Add unicode_fsdecode() wrapper for PyUnicode_DecodeFSDefault() to use the correct API for Py_BuildValue() converter API. --- Modules/socketmodule.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 795451d48e7b..2e48a72a72f2 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -1380,6 +1380,11 @@ makebdaddr(bdaddr_t *bdaddr) } #endif +PyObject* +unicode_fsdecode(void *arg) +{ + return PyUnicode_DecodeFSDefault((const char*)arg); +} /* Create an object representing the given socket address, suitable for passing it back to bind(), connect() etc. @@ -1616,26 +1621,25 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto) #ifdef CAN_ISOTP case CAN_ISOTP: { - return Py_BuildValue("O&kk", PyUnicode_DecodeFSDefault, - ifname, - a->can_addr.tp.rx_id, - a->can_addr.tp.tx_id); + return Py_BuildValue("O&kk", unicode_fsdecode, + ifname, + a->can_addr.tp.rx_id, + a->can_addr.tp.tx_id); } #endif /* CAN_ISOTP */ #ifdef CAN_J1939 case CAN_J1939: { - return Py_BuildValue("O&KIB", PyUnicode_DecodeFSDefault, - ifname, - (unsigned long long)a->can_addr.j1939.name, - (unsigned int)a->can_addr.j1939.pgn, - a->can_addr.j1939.addr); + return Py_BuildValue("O&KIB", unicode_fsdecode, + ifname, + (unsigned long long)a->can_addr.j1939.name, + (unsigned int)a->can_addr.j1939.pgn, + a->can_addr.j1939.addr); } #endif /* CAN_J1939 */ default: { - return Py_BuildValue("(O&)", PyUnicode_DecodeFSDefault, - ifname); + return Py_BuildValue("(O&)", unicode_fsdecode, ifname); } } } @@ -7161,7 +7165,7 @@ socket_if_nameindex(PyObject *self, PyObject *arg) } #endif PyObject *ni_tuple = Py_BuildValue("IO&", - ni[i].if_index, PyUnicode_DecodeFSDefault, ni[i].if_name); + ni[i].if_index, unicode_fsdecode, ni[i].if_name); if (ni_tuple == NULL || PyList_Append(list, ni_tuple) == -1) { Py_XDECREF(ni_tuple); -- 2.47.3