projects
/
python
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4288520
)
PyUnicode_FromKindAndData() fails with a ValueError if size < 0
author
Victor Stinner
<victor.stinner@haypocalc.com>
Tue, 22 Nov 2011 00:29:14 +0000
(
01:29
+0100)
committer
Victor Stinner
<victor.stinner@haypocalc.com>
Tue, 22 Nov 2011 00:29:14 +0000
(
01:29
+0100)
Objects/unicodeobject.c
patch
|
blob
|
history
diff --git
a/Objects/unicodeobject.c
b/Objects/unicodeobject.c
index 30a1377add99b9609c374e6dde575f73c30ecb71..7f079e789972aa9d47561c52d4db0d76d6477cd5 100644
(file)
--- a/
Objects/unicodeobject.c
+++ b/
Objects/unicodeobject.c
@@
-1906,6
+1906,10
@@
_PyUnicode_FromUCS4(const Py_UCS4 *u, Py_ssize_t size)
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
@@
PyUnicode_FromKindAndData(int kind, const void *buffer, Py_ssize_t size)
case PyUnicode_4BYTE_KIND:
return _PyUnicode_FromUCS4(buffer, size);
default:
- assert(0 && "invalid kind");
PyErr_SetString(PyExc_SystemError, "invalid kind");
return NULL;
}