diff options
author | Benjamin Peterson <benjamin@python.org> | 2012-10-09 11:16:26 -0400 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2012-10-09 11:16:26 -0400 |
commit | 455fa0a314b7f7edd0c8554b12a65267ff1e2e5b (patch) | |
tree | a4db0395d8674c1e3c4119f0edccf72307b34e49 /Objects/tupleobject.c | |
parent | b29614e047110f4d9af993a6cdec4e3fb7ef9738 (diff) | |
parent | 831893a68ec7114c1fc9c8e36b9159f5c1db50c7 (diff) | |
download | cpython-git-455fa0a314b7f7edd0c8554b12a65267ff1e2e5b.tar.gz |
merge heads
Diffstat (limited to 'Objects/tupleobject.c')
-rw-r--r-- | Objects/tupleobject.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index b76125a1c1..9c843fa981 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -96,15 +96,11 @@ PyTuple_New(register Py_ssize_t size) else #endif { - Py_ssize_t nbytes = size * sizeof(PyObject *); /* Check for overflow */ - if (nbytes / sizeof(PyObject *) != (size_t)size || - (nbytes > PY_SSIZE_T_MAX - sizeof(PyTupleObject) - sizeof(PyObject *))) - { + if (size > (PY_SSIZE_T_MAX - sizeof(PyTupleObject) - + sizeof(PyObject *)) / sizeof(PyObject *)) { return PyErr_NoMemory(); } - /* nbytes += sizeof(PyTupleObject) - sizeof(PyObject *); */ - op = PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size); if (op == NULL) return NULL; @@ -481,9 +477,9 @@ tuplerepeat(PyTupleObject *a, Py_ssize_t n) if (Py_SIZE(a) == 0) return PyTuple_New(0); } - size = Py_SIZE(a) * n; - if (size/Py_SIZE(a) != n) + if (n > PY_SSIZE_T_MAX / Py_SIZE(a)) return PyErr_NoMemory(); + size = Py_SIZE(a) * n; np = (PyTupleObject *) PyTuple_New(size); if (np == NULL) return NULL; |