From: Victor Stinner Date: Fri, 5 Oct 2012 22:40:45 +0000 (+0200) Subject: In debug mode, unicode_write_cstr() now checks that non-ASCII characters are X-Git-Tag: v3.4.0a1~2355 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8c6db45d3e8a20cabe50f93b2bbc33b0040af5a3;p=python In debug mode, unicode_write_cstr() now checks that non-ASCII characters are not written into an ASCII string --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index daeb4b4db5..84bbf9afff 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1700,6 +1700,14 @@ unicode_write_cstr(PyObject *unicode, Py_ssize_t index, switch (kind) { case PyUnicode_1BYTE_KIND: { assert(index + len <= PyUnicode_GET_LENGTH(unicode)); +#ifdef Py_DEBUG + if (PyUnicode_IS_ASCII(unicode)) { + Py_UCS4 maxchar = ucs1lib_find_max_char( + (const Py_UCS1*)str, + (const Py_UCS1*)str + len); + assert(maxchar < 128); + } +#endif memcpy((char *) data + index, str, len); break; }