From 454fca74e4cb51f8f2589341de759431b0c05fa7 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 25 May 2007 17:21:12 +0500 Subject: decimal buffer overflow bug fixed mysql-test/r/ps_2myisam.result: test result fixed mysql-test/r/ps_3innodb.result: test result fixed mysql-test/r/ps_4heap.result: test result fixed mysql-test/r/ps_5merge.result: test result fixed mysql-test/r/ps_7ndb.result: test result fixed sql/my_decimal.h: DECIMAL_MAX_STR_LENGTH fixed --- sql/my_decimal.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'sql/my_decimal.h') diff --git a/sql/my_decimal.h b/sql/my_decimal.h index 17eb75cfdc5..5632f191b57 100644 --- a/sql/my_decimal.h +++ b/sql/my_decimal.h @@ -36,13 +36,18 @@ C_MODE_END /* maximum length of buffer in our big digits (uint32) */ #define DECIMAL_BUFF_LENGTH 9 + +/* the number of digits that my_decimal can possibly contain */ +#define DECIMAL_MAX_POSSIBLE_PRECISION (DECIMAL_BUFF_LENGTH * 9) + + /* maximum guaranteed precision of number in decimal digits (number of our digits * number of decimal digits in one our big digit - number of decimal - digits in one our big digit decreased on 1 (because we always put decimal + digits in one our big digit decreased by 1 (because we always put decimal point on the border of our big digits)) */ -#define DECIMAL_MAX_PRECISION ((DECIMAL_BUFF_LENGTH * 9) - 8*2) +#define DECIMAL_MAX_PRECISION (DECIMAL_MAX_POSSIBLE_PRECISION - 8*2) #define DECIMAL_MAX_SCALE 30 #define DECIMAL_NOT_SPECIFIED 31 @@ -50,7 +55,7 @@ C_MODE_END maximum length of string representation (number of maximum decimal digits + 1 position for sign + 1 position for decimal point) */ -#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_PRECISION + 2) +#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_POSSIBLE_PRECISION + 2) /* maximum size of packet length */ -- cgit v1.2.1