|
|
|
@ -6164,7 +6164,21 @@ PyUnicode_AsRawUnicodeEscapeString(PyObject *unicode) |
|
|
|
kind = PyUnicode_KIND(unicode); |
|
|
|
data = PyUnicode_DATA(unicode); |
|
|
|
len = PyUnicode_GET_LENGTH(unicode); |
|
|
|
expandsize = kind * 2 + 2; |
|
|
|
expandsize = 0; |
|
|
|
switch (kind) { |
|
|
|
case PyUnicode_1BYTE_KIND: |
|
|
|
expandsize = 4; |
|
|
|
break; |
|
|
|
case PyUnicode_2BYTE_KIND: |
|
|
|
expandsize = 6; |
|
|
|
break; |
|
|
|
case PyUnicode_4BYTE_KIND: |
|
|
|
expandsize = 10; |
|
|
|
break; |
|
|
|
default: |
|
|
|
assert(0); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
if (len > PY_SSIZE_T_MAX / expandsize) |
|
|
|
return PyErr_NoMemory(); |
|
|
|
|