summaryrefslogtreecommitdiff
path: root/strings/ctype-gbk.c
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@host.loc>2008-04-23 11:06:26 +0500
committerunknown <gshchepa/uchum@host.loc>2008-04-23 11:06:26 +0500
commite3ed2f88bd59876f5df876cc2889c8cb20888a94 (patch)
treea2ecc8aded425fd30407dc717fe1b6a7e4ffa81b /strings/ctype-gbk.c
parent6b4179ec5b0e3015076b1b492e73abe6499b6d4d (diff)
parentc2d1ac6e2cb8c393a229399de28f2793a9007d59 (diff)
downloadmariadb-git-e3ed2f88bd59876f5df876cc2889c8cb20888a94.tar.gz
Merge host.loc:/home/uchum/work/5.0-bugteam
into host.loc:/home/uchum/work/5.1-bugteam mysql-test/r/ctype_gbk.result: Auto merged mysql-test/r/subselect3.result: Auto merged mysql-test/t/subselect3.test: Auto merged sql/sql_select.cc: Auto merged strings/ctype-big5.c: Merge with 5.0-bugteam (bug#35993). strings/ctype-gbk.c: Merge with 5.0-bugteam (bug#35993).
Diffstat (limited to 'strings/ctype-gbk.c')
-rw-r--r--strings/ctype-gbk.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c
index c7a2558eb37..7b8bb85652b 100644
--- a/strings/ctype-gbk.c
+++ b/strings/ctype-gbk.c
@@ -2668,15 +2668,17 @@ static size_t my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)),
{
uint16 e;
size_t dstlen= len;
+ uchar *dest_end= dest + dstlen;
len = srclen;
- while (len--)
+ while (len-- && dest < dest_end)
{
if ((len > 0) && isgbkcode(*src, *(src+1)))
{
e = gbksortorder((uint16) gbkcode(*src, *(src+1)));
*dest++ = gbkhead(e);
- *dest++ = gbktail(e);
+ if (dest < dest_end)
+ *dest++ = gbktail(e);
src+=2;
len--;
} else