From: Victor Stinner Date: Wed, 27 Jan 2016 15:56:53 +0000 (+0100) Subject: Fix resize_compact() X-Git-Tag: v3.6.0a1~690^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5bc03a6d4d5d08663056ad1e85b67ad53e74d795;p=python Fix resize_compact() Issue #26217: resize_compact() must set wstr_length to 0 after freeing the wstr string. Otherwise, an assertion fails in _PyUnicode_CheckConsistency(). --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index c95792946d..d4c9aaee21 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -748,6 +748,8 @@ resize_compact(PyObject *unicode, Py_ssize_t length) else if (_PyUnicode_HAS_WSTR_MEMORY(unicode)) { PyObject_DEL(_PyUnicode_WSTR(unicode)); _PyUnicode_WSTR(unicode) = NULL; + if (!PyUnicode_IS_ASCII(unicode)) + _PyUnicode_WSTR_LENGTH(unicode) = 0; } #ifdef Py_DEBUG unicode_fill_invalid(unicode, old_length);