From: Georg Brandl Date: Mon, 29 May 2006 09:46:51 +0000 (+0000) Subject: Fix refleak in socketmodule. Replace bogus Py_BuildValue calls. X-Git-Tag: v2.5b1~368 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c7c51147c73984137410ec03026b77e4a76ab61e;p=python Fix refleak in socketmodule. Replace bogus Py_BuildValue calls. Fix refleak in exceptions. --- diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 164a5d12c5..6f9f5f38c2 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2472,7 +2472,7 @@ sock_recvfrom_buf(PySocketSockObject *s, PyObject *args, PyObject* kwds) /* Return the number of bytes read and the address. Note that we do not do anything special here in the case that readlen < recvlen. */ - ret = PyTuple_Pack(2, PyInt_FromLong(readlen), addr); + ret = Py_BuildValue("lO", readlen, addr); finally: Py_XDECREF(addr); @@ -4364,8 +4364,10 @@ init_socket(void) PyModule_AddIntConstant(m, "BTPROTO_SCO", BTPROTO_SCO); #endif PyModule_AddIntConstant(m, "BTPROTO_RFCOMM", BTPROTO_RFCOMM); - PyModule_AddObject(m, "BDADDR_ANY", Py_BuildValue("s", "00:00:00:00:00:00")); - PyModule_AddObject(m, "BDADDR_LOCAL", Py_BuildValue("s", "00:00:00:FF:FF:FF")); + PyModule_AddObject(m, "BDADDR_ANY", + PyString_FromString("00:00:00:00:00:00")); + PyModule_AddObject(m, "BDADDR_LOCAL", + PyString_FromString("00:00:00:FF:FF:FF")); #endif #ifdef HAVE_NETPACKET_PACKET_H diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 2ac45fbdae..44c8fd65a5 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -246,6 +246,7 @@ BaseException_set_args(PyBaseExceptionObject *self, PyObject *val) } seq = PySequence_Tuple(val); if (!seq) return -1; + Py_CLEAR(self->args); self->args = seq; return 0; }