From 5bc03a6d4d5d08663056ad1e85b67ad53e74d795 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 27 Jan 2016 16:56:53 +0100 Subject: 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(). --- Objects/unicodeobject.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index c957929..d4c9aae 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); -- cgit v0.12