diff options
author | unknown <ramil@mysql.com> | 2005-04-26 15:43:20 +0500 |
---|---|---|
committer | unknown <ramil@mysql.com> | 2005-04-26 15:43:20 +0500 |
commit | 38360ef37538a8bc112a4d0f2c2e8a05ea01ffad (patch) | |
tree | 53b8086d2c8f362453a09687a1432aa00407ee4a /mysys/charset.c | |
parent | 22311d277511e5412c1dd3c3b70d7e4104c948ab (diff) | |
download | mariadb-git-38360ef37538a8bc112a4d0f2c2e8a05ea01ffad.tar.gz |
A fix (bug #9756: mysql client failing on dumps containing certain \ sequences).
mysys/charset.c:
A fix (bug #9756: mysql client failing on dumps containing certain \ sequences).
As 'to_end' points to the last position we should use '>' comparison
instead of '>=' there.
'l' replaced with 'tmp_length' (in order not to mix 'l' with '1').
Diffstat (limited to 'mysys/charset.c')
-rw-r--r-- | mysys/charset.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/mysys/charset.c b/mysys/charset.c index a4a8205a3f9..534a6aa998e 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -581,15 +581,15 @@ ulong escape_string_for_mysql(CHARSET_INFO *charset_info, { char escape=0; #ifdef USE_MB - int l; - if (use_mb_flag && (l= my_ismbchar(charset_info, from, end))) + int tmp_length; + if (use_mb_flag && (tmp_length= my_ismbchar(charset_info, from, end))) { - if (to + l >= to_end) + if (to + tmp_length > to_end) { overflow=1; break; } - while (l--) + while (tmp_length--) *to++= *from++; from--; continue; @@ -605,7 +605,7 @@ ulong escape_string_for_mysql(CHARSET_INFO *charset_info, multi-byte character into a valid one. For example, 0xbf27 is not a valid GBK character, but 0xbf5c is. (0x27 = ', 0x5c = \) */ - if (use_mb_flag && (l= my_mbcharlen(charset_info, *from)) > 1) + if (use_mb_flag && (tmp_length= my_mbcharlen(charset_info, *from)) > 1) escape= *from; else #endif @@ -634,7 +634,7 @@ ulong escape_string_for_mysql(CHARSET_INFO *charset_info, } if (escape) { - if (to + 2 >= to_end) + if (to + 2 > to_end) { overflow=1; break; @@ -644,7 +644,7 @@ ulong escape_string_for_mysql(CHARSET_INFO *charset_info, } else { - if (to + 1 >= to_end) + if (to + 1 > to_end) { overflow=1; break; |