mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixed bug #32034: On 64bit platforms assigning values of
storage engine system variables was not validated and unexpected value was assigned. The check_func_enum function used subtraction from the uint value with the probably negative result. That result of type uint was compared with 0 after casting to signed long type. On architectures where long type is longer than int type the result of comparison was unexpected.
This commit is contained in:
@ -17,3 +17,13 @@ UNINSTALL PLUGIN EXAMPLE;
|
||||
ERROR 42000: PLUGIN EXAMPLE does not exist
|
||||
UNINSTALL PLUGIN non_exist;
|
||||
ERROR 42000: PLUGIN non_exist does not exist
|
||||
#
|
||||
# Bug#32034: check_func_enum() does not check correct values but set it
|
||||
# to impossible int val
|
||||
#
|
||||
INSTALL PLUGIN example SONAME 'ha_example.so';
|
||||
SET GLOBAL example_enum_var= e1;
|
||||
SET GLOBAL example_enum_var= e2;
|
||||
SET GLOBAL example_enum_var= impossible;
|
||||
ERROR 42000: Variable 'enum_var' can't be set to the value of 'impossible'
|
||||
UNINSTALL PLUGIN example;
|
||||
|
Reference in New Issue
Block a user