diff options
Diffstat (limited to 'Objects/bufferobject.c')
-rw-r--r-- | Objects/bufferobject.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Objects/bufferobject.c b/Objects/bufferobject.c index 3bd8c6b..9a5c39f 100644 --- a/Objects/bufferobject.c +++ b/Objects/bufferobject.c @@ -431,6 +431,10 @@ buffer_repeat(PyBufferObject *self, Py_ssize_t count) count = 0; if (!get_buf(self, &ptr, &size, ANY_BUFFER)) return NULL; + if (count > PY_SSIZE_T_MAX / size) { + PyErr_SetString(PyExc_MemoryError, "result too large"); + return NULL; + } ob = PyString_FromStringAndSize(NULL, size * count); if ( ob == NULL ) return NULL; |