Tor Didriksen
a6145f4b62
Bug#12563865 ROUNDED,TMP_BUF,DECIMAL_VALUE STACK CORRUPTION IN ALL VERSIONS >=5.0
...
Buffer over-run on all platforms, crash on windows, wrong result on other platforms,
when rounding numbers which start with 999999999 and have
precision = 9 or 18 or 27 or 36 ...
mysql-test/r/type_newdecimal.result:
New test cases.
mysql-test/t/type_newdecimal.test:
New test cases.
sql/my_decimal.h:
Add sanity checking code, to catch buffer over/under-run.
strings/decimal.c:
The original initialization of intg1 (add 1 if buf[0] == DIG_MAX)
will set p1 to point outside the buffer, and the loop to copy the original value
while (buf0 < p0)
*(--p1) = *(--p0);
will overwrite memory outside the my_decimal object.
2011-10-14 10:09:53 +02:00
..
2011-06-30 17:31:31 +02:00
2010-12-28 19:57:23 +01:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-07-22 11:45:15 +04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-07-14 16:16:37 -04:00
2008-03-19 18:44:50 +02:00
2007-11-16 14:46:36 +04:00
2011-06-30 17:31:31 +02:00
2007-11-30 17:08:00 +04:00
2007-10-23 16:32:05 +05:00
2007-07-17 19:51:50 +04:00
2009-12-01 14:24:44 +04:00
2009-04-24 16:33:50 +05:30
2011-06-30 17:31:31 +02:00
2007-07-12 13:29:51 +02:00
2011-06-30 17:31:31 +02:00
2007-06-06 04:42:41 +05:00
2008-03-29 09:52:16 +02:00
2008-02-28 14:23:22 +01:00
2008-07-10 14:47:53 -04:00
2007-11-05 20:18:22 +01:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-04-03 11:32:00 -04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-05-10 00:17:21 +05:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-10-04 12:01:28 +05:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2011-07-06 11:36:39 +02:00
2007-10-30 14:27:21 +02:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2007-11-21 22:56:42 +04:00
2007-04-26 11:51:37 -04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-10-23 15:28:53 +02:00
2008-10-23 15:28:53 +02:00
2008-10-23 15:28:53 +02:00
2011-06-30 17:31:31 +02:00
2011-10-14 10:09:53 +02:00
2011-07-06 11:36:39 +02:00
2011-07-22 11:45:15 +04:00
2011-06-30 17:31:31 +02:00
2008-11-14 02:01:41 +01:00
2008-11-14 02:01:41 +01:00
2011-06-30 17:31:31 +02:00
2008-08-25 21:02:54 +04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-03-21 17:23:17 +02:00
2011-06-30 17:31:31 +02:00
2007-05-16 10:44:59 +02:00
2011-06-30 17:31:31 +02:00
2008-07-10 14:50:07 -04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-01-23 13:26:41 -07:00
2008-01-23 13:26:41 -07:00
2011-06-30 17:31:31 +02:00
2011-06-30 21:27:04 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-03-21 17:23:17 +02:00
2011-06-30 17:31:31 +02:00
2008-03-21 17:23:17 +02:00
2007-10-17 20:08:58 +04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-07-16 16:29:22 -06:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2007-05-24 11:21:27 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-06-06 04:42:41 +05:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-07-06 11:36:39 +02:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2007-10-23 14:27:11 +05:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2008-03-11 14:42:54 +01:00
2011-07-06 11:36:39 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-07-01 15:33:28 -07:00
2011-07-15 14:07:38 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-07-12 22:26:41 +04:00
2011-06-30 17:31:31 +02:00
2007-07-06 16:18:49 +04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-10-06 11:23:46 +01:00
2008-02-21 14:58:29 -03:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2007-10-17 17:54:11 -04:00
2011-06-30 17:31:31 +02:00
2011-06-30 17:31:31 +02:00
2011-07-15 14:07:38 +02:00