diff Objects/unicodeobject.c @ 63439:dbc8da813630 3.1

Merged revisions 83395,83417 via svnmerge from svn+ssh://svn.python.org/python/branches/py3k ........ r83395 | georg.brandl | 2010-08-01 10:49:18 +0200 (So, 01 Aug 2010) | 1 line #8821: do not rely on Unicode strings being terminated with a \u0000, rather explicitly check range before looking for a second surrogate character. ........ r83417 | georg.brandl | 2010-08-01 20:38:26 +0200 (So, 01 Aug 2010) | 1 line #5776: fix mistakes in python specfile. (Nobody probably uses it anyway.) ........
author Georg Brandl <georg@python.org>
date Sun, 01 Aug 2010 18:59:44 +0000
parents 5cff058d6ced
children 5af361adaae9
line wrap: on
line diff
--- a/Objects/unicodeobject.c	Sun Aug 01 18:56:30 2010 +0000
+++ b/Objects/unicodeobject.c	Sun Aug 01 18:59:44 2010 +0000
@@ -3597,7 +3597,7 @@
 
             ch2 = *s++;
             size--;
-            if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {
+            if (ch2 >= 0xDC00 && ch2 <= 0xDFFF && size) {
                 ucs = (((ch & 0x03FF) << 10) | (ch2 & 0x03FF)) + 0x00010000;
                 *p++ = '\\';
                 *p++ = 'U';
@@ -3839,7 +3839,7 @@
 
                 ch2 = *s++;
                 size--;
-                if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {
+                if (ch2 >= 0xDC00 && ch2 <= 0xDFFF && size) {
                     ucs = (((ch & 0x03FF) << 10) | (ch2 & 0x03FF)) + 0x00010000;
                     *p++ = '\\';
                     *p++ = 'U';