From: Sergey Glukhov Date: March 28 2011 1:27pm Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3639) Bug#11766087 List-Archive: http://lists.mysql.com/commits/134058 X-Bug: 11766087 Message-Id: <201103281329.p2SDTlVw010442@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6968411191614654912==" --===============6968411191614654912== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/gluh/MySQL/mysql-5.1/ based on revid:sergey.glukhov@stripped 3639 Sergey Glukhov 2011-03-28 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 modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_func.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-03-28 13:24:25 +0000 +++ b/mysql-test/r/func_time.result 2011-03-28 13:27:44 +0000 @@ -1387,4 +1387,10 @@ STR_TO_DATE(SPACE(2),'1') SET GLOBAL SQL_MODE=''; DO STR_TO_DATE((''), FROM_DAYS(@@GLOBAL.SQL_MODE)); SET GLOBAL SQL_MODE=DEFAULT; +# +# Bug#11766087 59125: VALGRIND UNINITIALISED VALUE WARNING IN ULL2DEC, LONGLONG2DECIMAL +# +SELECT FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1); +FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1) +NULL End of 5.1 tests === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-03-28 13:24:25 +0000 +++ b/mysql-test/t/func_time.test 2011-03-28 13:27:44 +0000 @@ -895,4 +895,10 @@ SET GLOBAL SQL_MODE=''; DO STR_TO_DATE((''), FROM_DAYS(@@GLOBAL.SQL_MODE)); SET GLOBAL SQL_MODE=DEFAULT; +--echo # +--echo # Bug#11766087 59125: VALGRIND UNINITIALISED VALUE WARNING IN ULL2DEC, LONGLONG2DECIMAL +--echo # + +SELECT FORMAT(YEAR(STR_TO_DATE('',GET_FORMAT(TIME,''))),1); + --echo End of 5.1 tests === modified file 'sql/item_func.cc' --- a/sql/item_func.cc 2011-03-28 08:35:50 +0000 +++ b/sql/item_func.cc 2011-03-28 13:27:44 +0000 @@ -482,7 +482,10 @@ bool Item_func::is_expensive_processor(u 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; } --===============6968411191614654912== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/sergey.glukhov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: sergey.glukhov@stripped\ # kj14pkrflohle6dv # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: f906f403cbe775c29775c5d0d5de48dd468c9303 # timestamp: 2011-03-28 17:27:47 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # 7p6fs1054l45i54i # # Begin bundle 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 jikBYa3MdC0/4u5IpwoSH+fWi2A= --===============6968411191614654912==--