[Python-checkins] python/dist/src/Objects listobject.c,2.136,2.137 tupleobject.c,2.74,2.75

gvanrossum@users.sourceforge.net gvanrossum@users.sourceforge.net
Fri, 11 Oct 2002 14:05:59 -0700


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

Modified Files:
	listobject.c tupleobject.c 
Log Message:
Add checks for size overflow on list*n, list+list, tuple+tuple.

Will backport.


Index: listobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/listobject.c,v
retrieving revision 2.136
retrieving revision 2.137
diff -C2 -d -r2.136 -r2.137
*** listobject.c	5 Sep 2002 21:32:55 -0000	2.136
--- listobject.c	11 Oct 2002 21:05:55 -0000	2.137
***************
*** 392,395 ****
--- 392,397 ----
  #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) {
***************
*** 420,423 ****
--- 422,427 ----
  		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.74
retrieving revision 2.75
diff -C2 -d -r2.74 -r2.75
*** tupleobject.c	5 Sep 2002 21:32:55 -0000	2.74
--- tupleobject.c	11 Oct 2002 21:05:56 -0000	2.75
***************
*** 331,334 ****
--- 331,336 ----
  #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) {