diff options
author | Sergey Glukhov <sergey.glukhov@oracle.com> | 2011-05-26 14:06:39 +0400 |
---|---|---|
committer | Sergey Glukhov <sergey.glukhov@oracle.com> | 2011-05-26 14:06:39 +0400 |
commit | 3efbf30457d76a3e47371f6d4bd4b2ebd7141ffd (patch) | |
tree | b2b88c04e877e8b24d58ae84d1d29b6e04809ee2 /sql | |
parent | cce8a658436c2ae9052d38e7ca8c2fdf4d212b7d (diff) | |
download | mariadb-git-3efbf30457d76a3e47371f6d4bd4b2ebd7141ffd.tar.gz |
Bug#12392636 ASSERTION FAILED: SCALE >= 0 && PRECISION > 0 && SCALE <= PRECISION
Assertion happens due to missing NULL value check in
Item_func_round::fix_length_and_dec() function.
The fix: added NULL value check for second parameter.
mysql-test/r/func_math.result:
test case
mysql-test/t/func_math.test:
test case
sql/item_func.cc:
added NULL value check for second parameter.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/item_func.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc index b1398b78b84..feb87fe5fd7 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -1972,6 +1972,9 @@ void Item_func_round::fix_length_and_dec() } val1= args[1]->val_int(); + if ((null_value= args[1]->is_null())) + return; + val1_unsigned= args[1]->unsigned_flag; if (val1 < 0) decimals_to_set= val1_unsigned ? INT_MAX : 0; |