[Python-checkins] python/dist/src/Objects listobject.c,2.103.6.2,2.103.6.3 tupleobject.c,2.62.6.1,2.62.6.2

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Fri, 11 Oct 2002 14:13:16 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv21718

Modified Files:
      Tag: release22-maint
	listobject.c tupleobject.c 
Log Message:
Backport listobject.c 2.137 and tupleobject.c 2.75:

Add checks for size overflow on list*n, list+list, tuple+tuple.


Index: listobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/listobject.c,v
retrieving revision 2.103.6.2
retrieving revision 2.103.6.3
diff -C2 -d -r2.103.6.2 -r2.103.6.3
*** listobject.c	23 May 2002 13:02:35 -0000	2.103.6.2
--- listobject.c	11 Oct 2002 21:13:13 -0000	2.103.6.3
***************
*** 400,403 ****
--- 400,405 ----
  #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) {
***************
*** 428,431 ****
--- 430,435 ----
  		n = 0;
  	size = a->ob_size * n;
+ 	if (size/a->ob_size != n)
+ 		return PyErr_NoMemory();
  	np = (PyListObject *) PyList_New(size);
  	if (np == NULL)

Index: tupleobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/tupleobject.c,v
retrieving revision 2.62.6.1
retrieving revision 2.62.6.2
diff -C2 -d -r2.62.6.1 -r2.62.6.2
*** tupleobject.c	28 Mar 2002 20:36:50 -0000	2.62.6.1
--- tupleobject.c	11 Oct 2002 21:13:14 -0000	2.62.6.2
***************
*** 338,341 ****
--- 338,343 ----
  #define b ((PyTupleObject *)bb)
  	size = a->ob_size + b->ob_size;
+ 	if (size < 0)
+ 		return PyErr_NoMemory();
  	np = (PyTupleObject *) PyTuple_New(size);
  	if (np == NULL) {