diff Objects/listobject.c @ 25742:396c8a24880c 2.2

Backport listobject.c 2.137 and tupleobject.c 2.75: Add checks for size overflow on list*n, list+list, tuple+tuple.
author Guido van Rossum <guido@python.org>
date Fri, 11 Oct 2002 21:13:14 +0000
parents b8728d58e9c3
children d43e82b8d79d
line wrap: on
line diff
--- a/Objects/listobject.c	Fri Oct 11 20:59:57 2002 +0000
+++ b/Objects/listobject.c	Fri Oct 11 21:13:14 2002 +0000
@@ -399,6 +399,8 @@
 	}
 #define b ((PyListObject *)bb)
 	size = a->ob_size + b->ob_size;
+	if (size < 0)
+		return PyErr_NoMemory();
 	np = (PyListObject *) PyList_New(size);
 	if (np == NULL) {
 		return NULL;
@@ -427,6 +429,8 @@
 	if (n < 0)
 		n = 0;
 	size = a->ob_size * n;
+	if (size/a->ob_size != n)
+		return PyErr_NoMemory();
 	np = (PyListObject *) PyList_New(size);
 	if (np == NULL)
 		return NULL;