From a14c4bbbaa2a3c20e92edbd8fcf162a593474209 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Walter=20D=C3=B6rwald?= Date: Sun, 6 May 2007 10:00:02 +0000 Subject: Check whether the strlen() result overflows Py_ssize_t. --- Objects/unicodeobject.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index af98a90..9dc96da 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -396,7 +396,11 @@ PyObject *PyUnicode_FromUnicode(const Py_UNICODE *u, PyObject *PyUnicode_FromString(const char *u) { PyUnicodeObject *unicode; - Py_ssize_t size = strlen(u); + size_t size = strlen(u); + if (size > PY_SSIZE_T_MAX) { + PyErr_SetString(PyExc_OverflowError, "input too long"); + return NULL; + } /* If the Unicode data is known at construction time, we can apply some optimizations which share commonly used objects. */ -- cgit v0.12