summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authorSergey Glukhov <sergey.glukhov@oracle.com>2011-03-28 17:27:44 +0400
committerSergey Glukhov <sergey.glukhov@oracle.com>2011-03-28 17:27:44 +0400
commit47885f552b1822291584b71c791fd5175ba6567f (patch)
tree3cea3176ff8e9045f02e86ebb86e80dae38a4734 /sql/item_func.cc
parentd6125b27b38432d1a465397c0c5a9e62bb1c65d3 (diff)
downloadmariadb-git-47885f552b1822291584b71c791fd5175ba6567f.tar.gz
Bug#11766087 59125: VALGRIND UNINITIALISED VALUE WARNING IN ULL2DEC, LONGLONG2DECIMAL
Valgrind warning happens due to missing NULL value check in Item_func::val_decimal. The fix is to add this check. mysql-test/r/func_time.result: test case mysql-test/t/func_time.test: test case sql/item_func.cc: added check for NULL value
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 79fa37bd372..595629b51be 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -482,7 +482,10 @@ bool Item_func::is_expensive_processor(uchar *arg)
my_decimal *Item_func::val_decimal(my_decimal *decimal_value)
{
DBUG_ASSERT(fixed);
- int2my_decimal(E_DEC_FATAL_ERROR, val_int(), unsigned_flag, decimal_value);
+ longlong nr= val_int();
+ if (null_value)
+ return 0; /* purecov: inspected */
+ int2my_decimal(E_DEC_FATAL_ERROR, nr, unsigned_flag, decimal_value);
return decimal_value;
}