[Python-checkins] cpython: PyUnicode_FromKindAndData() fails with a ValueError if size < 0

victor.stinner python-checkins at python.org
Tue Nov 22 01:48:01 CET 2011


http://hg.python.org/cpython/rev/0679344ffff2
changeset:   73679:0679344ffff2
user:        Victor Stinner <victor.stinner at haypocalc.com>
date:        Tue Nov 22 01:29:14 2011 +0100
summary:
  PyUnicode_FromKindAndData() fails with a ValueError if size < 0

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


diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1906,6 +1906,10 @@
 PyObject*
 PyUnicode_FromKindAndData(int kind, const void *buffer, Py_ssize_t size)
 {
+    if (size < 0) {
+        PyErr_SetString(PyExc_ValueError, "size must be positive");
+        return NULL;
+    }
     switch(kind) {
     case PyUnicode_1BYTE_KIND:
         return _PyUnicode_FromUCS1(buffer, size);
@@ -1914,7 +1918,6 @@
     case PyUnicode_4BYTE_KIND:
         return _PyUnicode_FromUCS4(buffer, size);
     default:
-        assert(0 && "invalid kind");
         PyErr_SetString(PyExc_SystemError, "invalid kind");
         return NULL;
     }

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


More information about the Python-checkins mailing list