From 7c53b7773377e917bb9650e51c4d475dd3b991e6 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 13 Sep 1995 18:39:47 +0000 Subject: plug some leaks --- Modules/socketmodule.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 571a751..2987746 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -779,8 +779,10 @@ BUILD_FUNC_DEF_2(PySocketSock_recv,PySocketSockObject *,s, PyObject *,args) Py_BEGIN_ALLOW_THREADS n = recv(s->sock_fd, PyString_AsString(buf), len, flags); Py_END_ALLOW_THREADS - if (n < 0) + if (n < 0) { + Py_DECREF(buf); return PySocket_Err(); + } if (_PyString_Resize(&buf, n) < 0) return NULL; return buf; @@ -814,8 +816,10 @@ BUILD_FUNC_DEF_2(PySocketSock_recvfrom,PySocketSockObject *,s, PyObject *,args) (struct sockaddr *)addrbuf, &addrlen); #endif Py_END_ALLOW_THREADS - if (n < 0) + if (n < 0) { + Py_DECREF(buf); return PySocket_Err(); + } if (_PyString_Resize(&buf, n) < 0) return NULL; addr = makesockaddr((struct sockaddr *)addrbuf, addrlen); -- cgit v0.12