Fix refleak in socketmodule. Replace bogus Py_BuildValue calls.
Fix refleak in exceptions.
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 @@
 
 	/* 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 @@
 	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