From 30ff61640375ab28abdf87e786d0ce9feb1a9027 Mon Sep 17 00:00:00 2001 From: Vladislav Vaintroub Date: Mon, 7 Sep 2020 12:08:26 +0200 Subject: MDEV-23680 Assertion `data' failed in crcr32_calc_pclmulqdq Fix DBUG_ASSERT --- mysql-test/main/func_math.result | 6 ++++++ mysql-test/main/func_math.test | 5 +++++ mysys/crc32/crc32_x86.c | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/mysql-test/main/func_math.result b/mysql-test/main/func_math.result index 5da1ab02159..37188dab623 100644 --- a/mysql-test/main/func_math.result +++ b/mysql-test/main/func_math.result @@ -3591,5 +3591,11 @@ t2 CREATE TABLE `t2` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # +# MDEV-23680 Assertion `data' failed in crcr32_calc_pclmulqdq +# +SELECT CRC32(ExtractValue('', '/a/b')) AS f; +f +0 +# # End of 10.5 tests # diff --git a/mysql-test/main/func_math.test b/mysql-test/main/func_math.test index 7f8fe9e7e73..6bce8bdaad6 100644 --- a/mysql-test/main/func_math.test +++ b/mysql-test/main/func_math.test @@ -1883,6 +1883,11 @@ CREATE TABLE t2 AS SELECT UUID_SHORT() - a FROM t1; SHOW CREATE TABLE t2; DROP TABLE t2, t1; +--echo # +--echo # MDEV-23680 Assertion `data' failed in crcr32_calc_pclmulqdq +--echo # +SELECT CRC32(ExtractValue('', '/a/b')) AS f; + --echo # --echo # End of 10.5 tests diff --git a/mysys/crc32/crc32_x86.c b/mysys/crc32/crc32_x86.c index 48c930e762e..1e5d2a0a089 100644 --- a/mysys/crc32/crc32_x86.c +++ b/mysys/crc32/crc32_x86.c @@ -219,7 +219,7 @@ static inline uint32_t crcr32_calc_pclmulqdq(const uint8_t *data, uint32_t data_ __m128i temp, fold, k; uint32_t n; - DBUG_ASSERT(data); + DBUG_ASSERT(data != NULL || data_len == 0); DBUG_ASSERT(params); if (unlikely(data_len == 0)) -- cgit v1.2.1