38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
|
From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001
|
||
|
From: Sergei Golubchik <serg@mariadb.org>
|
||
|
Date: Sun, 13 May 2018 18:50:21 +0200
|
||
|
Subject: [PATCH] fix failing main.mysql_client_test test on 32bit
|
||
|
|
||
|
in `ulonglong=ulong*uint` multiplication
|
||
|
is done in ulong, wrapping around on 32bit.
|
||
|
|
||
|
This became visible after C/C changed the
|
||
|
default charset to utf8, thus changing
|
||
|
mbmaxlem from 1 to 3.
|
||
|
---
|
||
|
tests/mysql_client_fw.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
|
||
|
index f69eb28a2871..4d036887629a 100644
|
||
|
--- a/tests/mysql_client_fw.c
|
||
|
+++ b/tests/mysql_client_fw.c
|
||
|
@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
|
||
|
{
|
||
|
MYSQL_FIELD *field;
|
||
|
CHARSET_INFO *cs;
|
||
|
- ulonglong expected_field_length;
|
||
|
+ ulonglong expected_field_length= length;
|
||
|
|
||
|
if (!(field= mysql_fetch_field_direct(result, no)))
|
||
|
{
|
||
|
@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
|
||
|
}
|
||
|
cs= get_charset(field->charsetnr, 0);
|
||
|
DIE_UNLESS(cs);
|
||
|
- if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32)
|
||
|
+ if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32)
|
||
|
expected_field_length= UINT_MAX32;
|
||
|
if (!opt_silent)
|
||
|
{
|