Bug #32034 | check_func_enum() does not check correct values but set it to impossible int val | ||
---|---|---|---|
Submitted: | 1 Nov 2007 15:54 | Modified: | 5 Dec 2007 18:57 |
Reporter: | Oleksandr Byelkin | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.1 | OS: | Any (64bit) |
Assigned to: | Gleb Shchepa | CPU Architecture: | Any |
[1 Nov 2007 15:54]
Oleksandr Byelkin
[13 Nov 2007 21:00]
Gleb Shchepa
32bit Linux is not affected.
[13 Nov 2007 21:30]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/37705 ChangeSet@1.2648, 2007-11-14 01:29:17+04:00, gshchepa@gleb.loc +4 -0 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.
[14 Nov 2007 9:46]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/37731 ChangeSet@1.2648, 2007-11-14 13:48:21+04:00, gshchepa@gleb.loc +4 -0 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.
[16 Nov 2007 9:32]
Bugs System
Pushed into 5.1.23-rc
[16 Nov 2007 9:34]
Bugs System
Pushed into 6.0.4-alpha
[26 Nov 2007 18:57]
Paul DuBois
Noted in 5.1.23, 6.0.4 changelogs. On 64-bit platforms, assignments of values to storage engine-specific system variables were not validated and could result in unexpected values.
[26 Nov 2007 19:22]
Sergei Golubchik
storage engine-specific system variables of ENUM (one value from the set of strings) type
[5 Dec 2007 18:57]
Paul DuBois
Updated the changelog entries.