From: Antoine Pitrou Date: Sat, 6 Apr 2013 19:21:04 +0000 (+0200) Subject: Issue #17645: convert an assert() into a proper exception in _Py_Mangle(). X-Git-Tag: v3.3.2~157 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=55bff8919031093dad249be793d24c66956d8af3;p=thirdparty%2FPython%2Fcpython.git Issue #17645: convert an assert() into a proper exception in _Py_Mangle(). --- diff --git a/Python/compile.c b/Python/compile.c index 3cf71ef09e2d..0a8f58e692d8 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -248,8 +248,11 @@ _Py_Mangle(PyObject *privateobj, PyObject *ident) } plen -= ipriv; - assert(1 <= PY_SSIZE_T_MAX - nlen); - assert(1 + nlen <= PY_SSIZE_T_MAX - plen); + if (plen + nlen >= PY_SSIZE_T_MAX - 1) { + PyErr_SetString(PyExc_OverflowError, + "private identifier too large to be mangled"); + return NULL; + } maxchar = PyUnicode_MAX_CHAR_VALUE(ident); if (PyUnicode_MAX_CHAR_VALUE(privateobj) > maxchar)