mirror of
https://github.com/python/cpython.git
synced 2025-07-24 19:54:21 +00:00
Issue #19279: UTF-7 decoder no more produces illegal strings.
This commit is contained in:
parent
507c591e5b
commit
35804e4c63
3 changed files with 34 additions and 0 deletions
|
@ -4359,6 +4359,7 @@ PyUnicode_DecodeUTF7Stateful(const char *s,
|
|||
Py_UCS4 outCh = (Py_UCS4)(base64buffer >> (base64bits-16));
|
||||
base64bits -= 16;
|
||||
base64buffer &= (1 << base64bits) - 1; /* clear high bits */
|
||||
assert(outCh <= 0xffff);
|
||||
if (surrogate) {
|
||||
/* expecting a second surrogate */
|
||||
if (Py_UNICODE_IS_LOW_SURROGATE(outCh)) {
|
||||
|
@ -4426,6 +4427,7 @@ PyUnicode_DecodeUTF7Stateful(const char *s,
|
|||
inShift = 1;
|
||||
shiftOutStart = outpos;
|
||||
base64bits = 0;
|
||||
base64buffer = 0;
|
||||
}
|
||||
}
|
||||
else if (DECODE_DIRECT(ch)) { /* character decodes as itself */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue