benjamin.peterson
2014-10-15 16:18:02 UTC
https://hg.python.org/cpython/rev/f963cc1f96cf
changeset: 93074:f963cc1f96cf
branch: 3.3
parent: 93071:6a91e616485a
user: Benjamin Peterson <benjamin at python.org>
date: Wed Oct 15 12:17:21 2014 -0400
summary:
it suffices to check for PY_SSIZE_T_MAX overflow (#22643)
files:
Objects/unicodeobject.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -9484,12 +9484,11 @@
kind = PyUnicode_KIND(self);
data = PyUnicode_DATA(self);
length = PyUnicode_GET_LENGTH(self);
- if (length > PY_SSIZE_T_MAX / 3 ||
- length > PY_SIZE_MAX / (3 * sizeof(Py_UCS4))) {
+ if (length > PY_SSIZE_T_MAX / (3 * sizeof(Py_UCS4))) {
PyErr_SetString(PyExc_OverflowError, "string is too long");
return NULL;
}
- tmp = PyMem_MALLOC(sizeof(Py_UCS4) * 3 * (size_t)length);
+ tmp = PyMem_MALLOC(sizeof(Py_UCS4) * 3 * length);
if (tmp == NULL)
return PyErr_NoMemory();
newlength = perform(kind, data, length, tmp, &maxchar);
changeset: 93074:f963cc1f96cf
branch: 3.3
parent: 93071:6a91e616485a
user: Benjamin Peterson <benjamin at python.org>
date: Wed Oct 15 12:17:21 2014 -0400
summary:
it suffices to check for PY_SSIZE_T_MAX overflow (#22643)
files:
Objects/unicodeobject.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -9484,12 +9484,11 @@
kind = PyUnicode_KIND(self);
data = PyUnicode_DATA(self);
length = PyUnicode_GET_LENGTH(self);
- if (length > PY_SSIZE_T_MAX / 3 ||
- length > PY_SIZE_MAX / (3 * sizeof(Py_UCS4))) {
+ if (length > PY_SSIZE_T_MAX / (3 * sizeof(Py_UCS4))) {
PyErr_SetString(PyExc_OverflowError, "string is too long");
return NULL;
}
- tmp = PyMem_MALLOC(sizeof(Py_UCS4) * 3 * (size_t)length);
+ tmp = PyMem_MALLOC(sizeof(Py_UCS4) * 3 * length);
if (tmp == NULL)
return PyErr_NoMemory();
newlength = perform(kind, data, length, tmp, &maxchar);
--
Repository URL: https://hg.python.org/cpython
Repository URL: https://hg.python.org/cpython