pkgsrc/lang/python24/patches/patch-bj
drochner 20cca7e4a5 also apply upstream svn rev.65262, fixes overflow checks in memory
allocation (CVE-2008-3142), ride on PKGREVISION bump some minutes ago
2008-08-05 10:45:45 +00:00

35 lines
1.1 KiB
Text

$NetBSD: patch-bj,v 1.1 2008/08/05 10:45:45 drochner Exp $
--- Modules/arraymodule.c.orig 2008-03-02 20:20:32.000000000 +0100
+++ Modules/arraymodule.c
@@ -814,6 +814,7 @@ static int
array_do_extend(arrayobject *self, PyObject *bb)
{
int size;
+ char *old_item;
if (!array_Check(bb))
return array_iter_extend(self, bb);
@@ -829,10 +830,11 @@ array_do_extend(arrayobject *self, PyObj
return -1;
}
size = self->ob_size + b->ob_size;
+ old_item = self->ob_item;
PyMem_RESIZE(self->ob_item, char, size*self->ob_descr->itemsize);
if (self->ob_item == NULL) {
- PyObject_Del(self);
- PyErr_NoMemory();
+ self->ob_item = old_item;
+ PyErr_NoMemory();
return -1;
}
memcpy(self->ob_item + self->ob_size*self->ob_descr->itemsize,
@@ -884,7 +886,7 @@ array_inplace_repeat(arrayobject *self,
if (size > INT_MAX / n) {
return PyErr_NoMemory();
}
- PyMem_Resize(items, char, n * size);
+ PyMem_RESIZE(items, char, n * size);
if (items == NULL)
return PyErr_NoMemory();
p = items;