aboutsummaryrefslogtreecommitdiffstats
path: root/main/python/recvfrom_into_buffer_overflow_2.7.patch
blob: 37e786bd3a5a0d33f85d953dcd7123e09f934157 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 */