diff -r 40fb60df4755 Modules/socketmodule.c --- a/Modules/socketmodule.c Sun Jan 12 12:11:47 2014 +0200 +++ b/Modules/socketmodule.c Mon Jan 13 16:36:35 2014 -0800 @@ -2744,6 +2744,13 @@ recvlen = buflen; } + /* Check if the buffer is large enough */ + if (buflen < recvlen) { + PyErr_SetString(PyExc_ValueError, + "buffer too small for requested bytes"); + goto error; + } + readlen = sock_recvfrom_guts(s, buf.buf, recvlen, flags, &addr); if (readlen < 0) { /* Return an error */