Merge branch '11.4' into 11.4.2

This commit is contained in:
Oleksandr Byelkin 2024-05-24 09:39:24 +02:00
commit e9a5b25dfd
3 changed files with 19 additions and 1 deletions

View file

@ -3024,3 +3024,10 @@ HEX(DATE_FORMAT(TIME'11:22:33',@format))
#
# End of 10.4 tests
#
#
# MDEV-33729 UBSAN negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_strntoll_mb2_or_mb4
#
SET NAMES utf8mb3, character_set_connection=utf32;
SELECT CONV('-AzL8n0Y58m8', -62, -10);
CONV('-AzL8n0Y58m8', -62, -10)
-9223372036854775808

View file

@ -1168,3 +1168,10 @@ SELECT HEX(DATE_FORMAT(TIME'11:22:33',@format));
--echo #
--enable_service_connection
--echo #
--echo # MDEV-33729 UBSAN negation of -X cannot be represented in type 'long long int'; cast to an unsigned type to negate this value to itself in my_strntoll_mb2_or_mb4
--echo #
SET NAMES utf8mb3, character_set_connection=utf32;
SELECT CONV('-AzL8n0Y58m8', -62, -10);

View file

@ -504,8 +504,12 @@ bs:
if (negative)
{
if (res > (ulonglong) LONGLONG_MIN)
if (res >= (ulonglong) LONGLONG_MIN)
{
if (res == (ulonglong) LONGLONG_MIN)
return LONGLONG_MIN;
overflow = 1;
}
}
else if (res > (ulonglong) LONGLONG_MAX)
overflow = 1;