[Python-Dev] can this overflow (list insertion)?
Vladimir Marangozov
Vladimir.Marangozov@inrialpes.fr
Sun, 13 Aug 2000 11:16:50 +0200 (CEST)
Tim Peters wrote:
>
> I think it's more relying on the product of two other assumptions: (a)
> sizeof(int) >= 4, and (b) nobody is going to make a list with 2 billion
> elements in Python. But you're right, sooner or later that's going to bite
> us.
+1 on your patch, but frankly, if we reach a situation to be bitten
by this overflow, chances are that we've already dumped core or will
be very soon -- billions of objects = soon to be overflowing
ob_refcnt integer counters. Py_None looks like a fine candidate for this.
Now I'm sure you're going to suggest again making the ob_refcnt a long,
as you did before <wink>.
> Suggest checking at the *start* of the routine instead:
>
> if (self->ob_size == INT_MAX) {
> PyErr_SetString(PyExc_OverflowError,
> "cannot add more objects to list");
> return -1;
> }
>
> Then the list isn't harmed.
--
Vladimir MARANGOZOV | Vladimir.Marangozov@inrialpes.fr
http://sirac.inrialpes.fr/~marangoz | tel:(+33-4)76615277 fax:76615252