[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) {