Skip to content

Commit 4b5bbd8

Browse files
committed
bpo-34397: Remove redundant overflow checks in list and tuple implementation.
1 parent 51aac15 commit 4b5bbd8

File tree

2 files changed

+4
-15
lines changed

2 files changed

+4
-15
lines changed

Objects/listobject.c

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,8 @@ ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
291291
PyErr_BadInternalCall();
292292
return -1;
293293
}
294-
if (n == PY_SSIZE_T_MAX) {
295-
PyErr_SetString(PyExc_OverflowError,
296-
"cannot add more objects to list");
297-
return -1;
298-
}
299294

295+
assert((size_t)n + 1 < PY_SSIZE_T_MAX);
300296
if (list_resize(self, n+1) < 0)
301297
return -1;
302298

@@ -331,12 +327,7 @@ app1(PyListObject *self, PyObject *v)
331327
Py_ssize_t n = PyList_GET_SIZE(self);
332328

333329
assert (v != NULL);
334-
if (n == PY_SSIZE_T_MAX) {
335-
PyErr_SetString(PyExc_OverflowError,
336-
"cannot add more objects to list");
337-
return -1;
338-
}
339-
330+
assert((size_t)n + 1 < PY_SSIZE_T_MAX);
340331
if (list_resize(self, n+1) < 0)
341332
return -1;
342333

@@ -528,8 +519,7 @@ list_concat(PyListObject *a, PyObject *bb)
528519
return NULL;
529520
}
530521
#define b ((PyListObject *)bb)
531-
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
532-
return PyErr_NoMemory();
522+
assert((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX);
533523
size = Py_SIZE(a) + Py_SIZE(b);
534524
np = (PyListObject *) list_new_prealloc(size);
535525
if (np == NULL) {

Objects/tupleobject.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,8 +483,7 @@ tupleconcat(PyTupleObject *a, PyObject *bb)
483483
Py_INCREF(a);
484484
return (PyObject *)a;
485485
}
486-
if (Py_SIZE(a) > PY_SSIZE_T_MAX - Py_SIZE(b))
487-
return PyErr_NoMemory();
486+
assert((size_t)Py_SIZE(a) + (size_t)Py_SIZE(b) < PY_SSIZE_T_MAX);
488487
size = Py_SIZE(a) + Py_SIZE(b);
489488
np = (PyTupleObject *) PyTuple_New(size);
490489
if (np == NULL) {

0 commit comments

Comments
 (0)