[Python-checkins] bpo-32827: Fix usage of _PyUnicodeWriter_Prepare() in decoding errors handler. (GH-5636)

Miss Islington (bot) webhook-mailer at python.org
Tue Feb 13 04:32:54 EST 2018


https://github.com/python/cpython/commit/310b424c476e3de3370990e5b9a10acc64ed17f8
commit: 310b424c476e3de3370990e5b9a10acc64ed17f8
branch: 3.6
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-02-13T01:32:46-08:00
summary:

bpo-32827: Fix usage of _PyUnicodeWriter_Prepare() in decoding errors handler. (GH-5636)

(cherry picked from commit b7e2d67f7c035f09c921ca4e7a36529cd502ccf7)

Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>

files:
M Objects/unicodeobject.c

diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index a246756d9412..bed7d419b070 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -4500,7 +4500,7 @@ unicode_decode_call_errorhandler_writer(
     }
     if (need_to_grow) {
         writer->overallocate = 1;
-        if (_PyUnicodeWriter_Prepare(writer, writer->min_length,
+        if (_PyUnicodeWriter_Prepare(writer, writer->min_length - writer->pos,
                             PyUnicode_MAX_CHAR_VALUE(repunicode)) == -1)
             goto onError;
     }
@@ -6176,9 +6176,7 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
                 &writer)) {
             goto onError;
         }
-        if (_PyUnicodeWriter_Prepare(&writer, writer.min_length, 127) < 0) {
-            goto onError;
-        }
+        assert(end - s <= writer.size - writer.pos);
 
 #undef WRITE_ASCII_CHAR
 #undef WRITE_CHAR
@@ -6455,9 +6453,7 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
                 &writer)) {
             goto onError;
         }
-        if (_PyUnicodeWriter_Prepare(&writer, writer.min_length, 127) < 0) {
-            goto onError;
-        }
+        assert(end - s <= writer.size - writer.pos);
 
 #undef WRITE_CHAR
     }



More information about the Python-checkins mailing list