#16336: merge with 3.3.

This commit is contained in:
Ezio Melotti 2012-11-03 23:05:18 +02:00
commit 1e58ae44df
3 changed files with 9 additions and 4 deletions

View file

@ -791,10 +791,10 @@ PyCodec_SurrogatePassErrors(PyObject *exc)
/* Try decoding a single surrogate character. If
there are more, let the codec call us again. */
p += start;
if (strlen(p) > 2 &&
((p[0] & 0xf0) == 0xe0 ||
(p[1] & 0xc0) == 0x80 ||
(p[2] & 0xc0) == 0x80)) {
if (PyBytes_GET_SIZE(object) - start >= 3 &&
(p[0] & 0xf0) == 0xe0 &&
(p[1] & 0xc0) == 0x80 &&
(p[2] & 0xc0) == 0x80) {
/* it's a three-byte code */
ch = ((p[0] & 0x0f) << 12) + ((p[1] & 0x3f) << 6) + (p[2] & 0x3f);
if (!Py_UNICODE_IS_SURROGATE(ch))