From c2de7c03a05eb59ff03f07ea799d0c33abad6cc8 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 3 Aug 2007 22:27:51 +0000 Subject: [PATCH] Get rid of a bogus assert when recv_into() is called with a zero-length buffer. We just return 0 in this case now, like for all zero-length reads. --- Modules/socketmodule.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index f6f577e090f..d9e984486cb 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -2193,6 +2193,10 @@ sock_recv_guts(PySocketSockObject *s, char* cbuf, int len, int flags) select_error(); return -1; } + if (len == 0) { + /* If 0 bytes were requested, do nothing. */ + return 0; + } #ifndef __VMS Py_BEGIN_ALLOW_THREADS @@ -2322,7 +2326,6 @@ sock_recv_into(PySocketSockObject *s, PyObject *args, PyObject *kwds) if (!PyArg_ParseTupleAndKeywords(args, kwds, "w#|ii:recv_into", kwlist, &buf, &buflen, &recvlen, &flags)) return NULL; - assert(buf != 0 && buflen > 0); if (recvlen < 0) { PyErr_SetString(PyExc_ValueError,