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;
(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);