From c7c51147c73984137410ec03026b77e4a76ab61e Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Mon, 29 May 2006 09:46:51 +0000 Subject: Fix refleak in socketmodule. Replace bogus Py_BuildValue calls. Fix refleak in exceptions. --- Modules/socketmodule.c | 8 +++++--- Objects/exceptions.c | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 164a5d1..6f9f5f3 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 2ac45fb..44c8fd6 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; } -- cgit v0.12