]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix crash in GB18030 encoder
authorAndreas Schwab <schwab@redhat.com>
Tue, 28 Jun 2011 07:15:30 +0000 (03:15 -0400)
committerAndreas Schwab <schwab@redhat.com>
Tue, 28 Jun 2011 11:30:52 +0000 (13:30 +0200)
(cherry picked from commit a4172181585cec75422786d905c6e03ddfa7cd20)

ChangeLog
iconvdata/gb18030.c

index c90463ec741f91e770b915577d904f06372d1061..b27323cdb70a48e3ac6b39156c38066f33fc020b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-06-27  Andreas Schwab  <schwab@redhat.com>
+
+       * iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP
+       two-byte characters.
+
 2011-06-22  Andreas Schwab  <schwab@redhat.com>
 
        * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
index f2b23e66eaa25e9633166db5d590081fb49a2fbc..a06b75d03b3f3592d4f6754d1ae05050aecfb9cb 100644 (file)
@@ -18233,17 +18233,17 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
              len = 0;                                                        \
          }                                                                   \
        else if (ch == 0x20087)                                               \
-         idx = 0xfe51;                                                       \
+         cp = (const unsigned char *) "\xfe\x51";                            \
        else if (ch == 0x20089)                                               \
-         idx = 0xfe52;                                                       \
+         cp = (const unsigned char *) "\xfe\x52";                            \
        else if (ch == 0x200CC)                                               \
-         idx = 0xfe53;                                                       \
+         cp = (const unsigned char *) "\xfe\x53";                            \
        else if (ch == 0x215d7)                                               \
-         idx = 0xfe6c;                                                       \
+         cp = (const unsigned char *) "\xfe\x6c";                            \
        else if (ch == 0x2298F)                                               \
-         idx = 0xfe76;                                                       \
+         cp = (const unsigned char *) "\xfe\x76";                            \
        else if (ch == 0x241FE)                                               \
-         idx = 0xfe91;                                                       \
+         cp = (const unsigned char *) "\xfe\x91";                            \
        else                                                                  \
          len = 0;                                                            \
                                                                              \