[Python-checkins] cpython: PyUnicode_AsUnicodeCopy() now checks if PyUnicode_AsUnicode() failed

victor.stinner python-checkins at python.org
Tue Oct 11 22:13:04 CEST 2011


http://hg.python.org/cpython/rev/fafb6e4ef7be
changeset:   72865:fafb6e4ef7be
user:        Victor Stinner <victor.stinner at haypocalc.com>
date:        Tue Oct 11 22:12:48 2011 +0200
summary:
  PyUnicode_AsUnicodeCopy() now checks if PyUnicode_AsUnicode() failed

files:
  Objects/unicodeobject.c |  7 +++++--
  1 files changed, 5 insertions(+), 2 deletions(-)


diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -13775,13 +13775,16 @@
 PyUnicode_AsUnicodeCopy(PyObject *object)
 {
     PyUnicodeObject *unicode = (PyUnicodeObject *)object;
-    Py_UNICODE *copy;
+    Py_UNICODE *u, *copy;
     Py_ssize_t size;
 
     if (!PyUnicode_Check(unicode)) {
         PyErr_BadArgument();
         return NULL;
     }
+    u = PyUnicode_AsUnicode(object);
+    if (u == NULL)
+        return NULL;
     /* Ensure we won't overflow the size. */
     if (PyUnicode_GET_SIZE(unicode) > ((PY_SSIZE_T_MAX / sizeof(Py_UNICODE)) - 1)) {
         PyErr_NoMemory();
@@ -13794,7 +13797,7 @@
         PyErr_NoMemory();
         return NULL;
     }
-    memcpy(copy, PyUnicode_AS_UNICODE(unicode), size);
+    memcpy(copy, u, size);
     return copy;
 }
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list