From: Andreas Schwab Date: Tue, 28 Jun 2011 07:15:30 +0000 (-0400) Subject: Fix crash in GB18030 encoder X-Git-Tag: glibc-2.14.1~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=96147940d8ffb63efdf84a7f2608eec742df8c61;p=thirdparty%2Fglibc.git Fix crash in GB18030 encoder (cherry picked from commit a4172181585cec75422786d905c6e03ddfa7cd20) --- diff --git a/ChangeLog b/ChangeLog index c90463ec741..b27323cdb70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-06-27 Andreas Schwab + + * iconvdata/gb18030.c (BODY for TO_LOOP): Fix encoding of non-BMP + two-byte characters. + 2011-06-22 Andreas Schwab * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change. diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c index f2b23e66eaa..a06b75d03b3 100644 --- a/iconvdata/gb18030.c +++ b/iconvdata/gb18030.c @@ -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; \ \