summary refs log tree commit diff
path: root/gnu/packages/patches/mariadb-client-test-32bit.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/mariadb-client-test-32bit.patch')
-rw-r--r--gnu/packages/patches/mariadb-client-test-32bit.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/gnu/packages/patches/mariadb-client-test-32bit.patch b/gnu/packages/patches/mariadb-client-test-32bit.patch
new file mode 100644
index 0000000000..02017e324d
--- /dev/null
+++ b/gnu/packages/patches/mariadb-client-test-32bit.patch
@@ -0,0 +1,37 @@
+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)
+   {