diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-06-28 07:31:00 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-28 07:31:00 (GMT) |
commit | 54ba940abc2fabb94fede46dfad80f8ac15632a3 (patch) | |
tree | 6c5d594ac7e15a9b50a04a8f674e2362602ab9de /Include | |
parent | 9dff523e42a5f8eca8e88151785be54468e57969 (diff) | |
download | cpython-54ba940abc2fabb94fede46dfad80f8ac15632a3.zip cpython-54ba940abc2fabb94fede46dfad80f8ac15632a3.tar.gz cpython-54ba940abc2fabb94fede46dfad80f8ac15632a3.tar.bz2 |
[3.5] bpo-13617: Reject embedded null characters in wchar* strings. (GH-2302) (#2463)
Based on patch by Victor Stinner.
Add private C API function _PyUnicode_AsUnicode() which is similar to
PyUnicode_AsUnicode(), but checks for null characters..
(cherry picked from commit f7eae0adfcd4c50034281b2c69f461b43b68db84)
Diffstat (limited to 'Include')
-rw-r--r-- | Include/unicodeobject.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 0e44808..f0ececc 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -764,23 +764,27 @@ PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4( exception set. */ PyAPI_FUNC(Py_UCS4*) PyUnicode_AsUCS4Copy(PyObject *unicode); +#ifndef Py_LIMITED_API /* Return a read-only pointer to the Unicode object's internal Py_UNICODE buffer. If the wchar_t/Py_UNICODE representation is not yet available, this function will calculate it. */ -#ifndef Py_LIMITED_API PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( PyObject *unicode /* Unicode object */ ); -#endif + +/* Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string + contains null characters. */ +PyAPI_FUNC(const Py_UNICODE *) _PyUnicode_AsUnicode( + PyObject *unicode /* Unicode object */ + ); /* Return a read-only pointer to the Unicode object's internal Py_UNICODE buffer and save the length at size. If the wchar_t/Py_UNICODE representation is not yet available, this function will calculate it. */ -#ifndef Py_LIMITED_API PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize( PyObject *unicode, /* Unicode object */ Py_ssize_t *size /* location where to save the length */ |