about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-06-28 03:15:30 -0400
committerUlrich Drepper <drepper@gmail.com>2011-06-28 03:15:30 -0400
commita4172181585cec75422786d905c6e03ddfa7cd20 (patch)
tree05e252e58b2cf38503f7ec3e893862ae2324e1d3
parent62bede1313c3a1fa477a092006d64436de6821b1 (diff)
downloadglibc-a4172181585cec75422786d905c6e03ddfa7cd20.tar.gz
glibc-a4172181585cec75422786d905c6e03ddfa7cd20.tar.xz
glibc-a4172181585cec75422786d905c6e03ddfa7cd20.zip
Fix crash in GB18030 encoder
-rw-r--r--ChangeLog5
-rw-r--r--iconvdata/gb18030.c12
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 76779f3993..d42c5dd6a3 100644
--- 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-27  Roland McGrath  <roland@hack.frob.com>
 
 	* configure.in (NO_CTORS_DTORS_SECTIONS): Give this check its own
diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c
index f2b23e66ea..a06b75d03b 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;							      \
 									      \