Issue #15989: Fix several occurrences of integer overflow

when result of PyLong_AsLong() narrowed to int without checks.

This is a backport of changesets 13e2e44db99d and 525407d89277.
This commit is contained in:
Serhiy Storchaka 2013-01-19 12:26:26 +02:00
parent ff12fae80e
commit 441d30fac7
16 changed files with 129 additions and 20 deletions

View file

@ -9640,7 +9640,7 @@ PyObject *PyUnicode_Format(PyObject *format,
"* wants int");
goto onError;
}
width = PyLong_AsLong(v);
width = PyLong_AsSsize_t(v);
if (width == -1 && PyErr_Occurred())
goto onError;
if (width < 0) {
@ -9677,7 +9677,7 @@ PyObject *PyUnicode_Format(PyObject *format,
"* wants int");
goto onError;
}
prec = PyLong_AsLong(v);
prec = _PyLong_AsInt(v);
if (prec == -1 && PyErr_Occurred())
goto onError;
if (prec < 0)