Merge branch '11.4' into 11.5

This commit is contained in:
Sergei Golubchik 2024-05-26 20:13:16 +02:00
commit b2fc885469
4 changed files with 20 additions and 2 deletions

@ -1 +1 @@
Subproject commit d9a50aceac6496215f8fdadc07658d923bb41afd
Subproject commit cc985fab30321d098372f95141bf2b3bbbbedf9b

View file

@ -3266,3 +3266,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

@ -1170,3 +1170,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

@ -477,8 +477,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;