Correct overflow check in PyTuple_New() (GH-14838)
authorSergey Fedoseev <fedoseev.sergey@gmail.com>
Mon, 9 Sep 2019 20:40:58 +0000 (01:40 +0500)
committerT. Wouters <thomas@python.org>
Mon, 9 Sep 2019 20:40:58 +0000 (13:40 -0700)
Objects/tupleobject.c

index a72257f95b083be4e9f5d4246a32a3ef4a0e6028..08f7022fda25a63e98c874c1eabe695abdac9036 100644 (file)
@@ -120,8 +120,8 @@ tuple_alloc(Py_ssize_t size)
 #endif
     {
         /* Check for overflow */
-        if ((size_t)size > ((size_t)PY_SSIZE_T_MAX - sizeof(PyTupleObject) -
-                    sizeof(PyObject *)) / sizeof(PyObject *)) {
+        if ((size_t)size > ((size_t)PY_SSIZE_T_MAX - (sizeof(PyTupleObject) -
+                    sizeof(PyObject *))) / sizeof(PyObject *)) {
             return (PyTupleObject *)PyErr_NoMemory();
         }
         op = PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size);