replacment string longer than mailformed input data.
Core and Builtins
-----------------
+- Issue #23321: Fixed a crash in str.decode() when error handler returned
+ replacment string longer than mailformed input data.
+
- Issue #23048: Fix jumping out of an infinite while loop in the pdb.
- Issue #20335: bytes constructor now raises TypeError when encoding or errors
if (PyUnicode_READY(repunicode) < 0)
goto onError;
replen = PyUnicode_GET_LENGTH(repunicode);
- writer->min_length += replen;
- if (replen > 1)
+ if (replen > 1) {
+ writer->min_length += replen - 1;
writer->overallocate = 1;
+ if (_PyUnicodeWriter_Prepare(writer, writer->min_length,
+ PyUnicode_MAX_CHAR_VALUE(repunicode)) == -1)
+ goto onError;
+ }
if (_PyUnicodeWriter_WriteStr(writer, repunicode) == -1)
goto onError;