Skip to content

Commit 577db2c

Browse files
author
Victor Stinner
committed
PyUnicode_AsUnicodeCopy() now checks if PyUnicode_AsUnicode() failed
1 parent d9c0631 commit 577db2c

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

Objects/unicodeobject.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13775,13 +13775,16 @@ Py_UNICODE*
1377513775
PyUnicode_AsUnicodeCopy(PyObject *object)
1377613776
{
1377713777
PyUnicodeObject *unicode = (PyUnicodeObject *)object;
13778-
Py_UNICODE *copy;
13778+
Py_UNICODE *u, *copy;
1377913779
Py_ssize_t size;
1378013780

1378113781
if (!PyUnicode_Check(unicode)) {
1378213782
PyErr_BadArgument();
1378313783
return NULL;
1378413784
}
13785+
u = PyUnicode_AsUnicode(object);
13786+
if (u == NULL)
13787+
return NULL;
1378513788
/* Ensure we won't overflow the size. */
1378613789
if (PyUnicode_GET_SIZE(unicode) > ((PY_SSIZE_T_MAX / sizeof(Py_UNICODE)) - 1)) {
1378713790
PyErr_NoMemory();
@@ -13794,7 +13797,7 @@ PyUnicode_AsUnicodeCopy(PyObject *object)
1379413797
PyErr_NoMemory();
1379513798
return NULL;
1379613799
}
13797-
memcpy(copy, PyUnicode_AS_UNICODE(unicode), size);
13800+
memcpy(copy, u, size);
1379813801
return copy;
1379913802
}
1380013803

0 commit comments

Comments
 (0)