]> granicus.if.org Git - python/commitdiff
Fix refleak in socketmodule. Replace bogus Py_BuildValue calls.
authorGeorg Brandl <georg@python.org>
Mon, 29 May 2006 09:46:51 +0000 (09:46 +0000)
committerGeorg Brandl <georg@python.org>
Mon, 29 May 2006 09:46:51 +0000 (09:46 +0000)
Fix refleak in exceptions.

Modules/socketmodule.c
Objects/exceptions.c

index 164a5d12c546f52a9f21907abec45b06a5e2efb5..6f9f5f38c226a8a93b416cf63dceffecd72dc498 100644 (file)
@@ -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
index 2ac45fbdae6f0cf08e994c09502ad9a6fcb6ee2f..44c8fd65a5c3136a7b4ffa24f4892bf95c12989c 100644 (file)
@@ -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;
 }