Bug #7774 | segmentation fault/data corruption by my_sprintf in Field_str::store(double) | ||
---|---|---|---|
Submitted: | 10 Jan 2005 15:35 | Modified: | 16 Feb 2005 19:24 |
Reporter: | Tim Cutts | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 4.1.8 | OS: | Linux (Linux/IA64, MacOS X 10.3) |
Assigned to: | Jim Winstead | CPU Architecture: | Any |
[10 Jan 2005 15:35]
Tim Cutts
[10 Jan 2005 17:20]
Tim Cutts
We tried compiling it from source too, using gcc, and that stops the crash, but ressults in a different bug; the value is inserted in the varchar column as '5.100000000000000088' which is clearly wrong, and the bug is also present in that form on other architectures (the 4.1.8 release for MacOS X exhibits this behaviour too) Any negative exponent greater in magnitude than -4 triggers this behaviour.
[10 Jan 2005 17:26]
Tim Cutts
Changed the title and increased the severity since we have found a form of the bug which corrupts data as well as crashing the server, and is not limited to a single architecture.
[10 Jan 2005 19:03]
MySQL Verification Team
I was able reproduce server crash on my x86 too using latest 4.1 and 5.0. 4.0 - works fine.
[13 Jan 2005 2:22]
Jim Winstead
The handling of values < 1 was just not correct. (The decision to disable scientific notation was being made by comparing against the largest positive power of ten that would fit, not the smallest negative power of ten.)
[16 Feb 2005 19:24]
Paul DuBois
Mentioned in 4.1.10 change notes.