diff Python/ast.c @ 45337:8cbe0bd93c28 2.5

Added checks for integer overflows, contributed by Google. Some are only available if asserts are left in the code, in cases where they can't be triggered from Python code.
author Martin v. Löwis <martin@v.loewis.de>
date Thu, 14 Feb 2008 11:26:18 +0000
parents 275115999b58
children 7d2e1ac834b8
line wrap: on
line diff
--- a/Python/ast.c	Thu Feb 14 04:57:08 2008 +0000
+++ b/Python/ast.c	Thu Feb 14 11:26:18 2008 +0000
@@ -3130,6 +3130,9 @@
 	     	buf = (char *)s;
 		u = NULL;
 	} else {
+		/* check for integer overflow */
+		if (len > PY_SIZE_MAX / 4)
+			return NULL;
 		/* "\XX" may become "\u005c\uHHLL" (12 bytes) */
 		u = PyString_FromStringAndSize((char *)NULL, len * 4);
 		if (u == NULL)