From: Sergey Glukhov Date: March 29 2011 11:36am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3641) Bug#11766124 List-Archive: http://lists.mysql.com/commits/134149 X-Bug: 11766124 Message-Id: <201103291138.p2TBcm1m029310@acsmt358.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1602515005269550140==" --===============1602515005269550140== 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 3641 Sergey Glukhov 2011-03-29 Bug#11766124 59164: VALGRIND: UNINITIALIZED VALUE IN NUMBER_TO_DATETIME Valgrind warning happens due to missing NULL value check in Item::get_date. 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.cc added check for NULL value modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-03-29 11:15:38 +0000 +++ b/mysql-test/r/func_time.result 2011-03-29 11:36:55 +0000 @@ -1399,4 +1399,10 @@ NULL SELECT CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)); CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)) NULL +# +# Bug#11766124 59164: VALGRIND: UNINITIALIZED VALUE IN NUMBER_TO_DATETIME +# +SELECT ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR); +ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR) +NULL End of 5.1 tests === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-03-29 11:15:38 +0000 +++ b/mysql-test/t/func_time.test 2011-03-29 11:36:55 +0000 @@ -907,4 +907,10 @@ SELECT FORMAT(YEAR(STR_TO_DATE('',GET_FO SELECT CAST((MONTH(FROM_UNIXTIME(@@GLOBAL.SQL_MODE))) AS BINARY(1025)); +--echo # +--echo # Bug#11766124 59164: VALGRIND: UNINITIALIZED VALUE IN NUMBER_TO_DATETIME +--echo # + +SELECT ADDDATE(MONTH(FROM_UNIXTIME(NULL)),INTERVAL 1 HOUR); + --echo End of 5.1 tests === modified file 'sql/item.cc' --- a/sql/item.cc 2011-03-15 11:36:12 +0000 +++ b/sql/item.cc 2011-03-29 11:36:55 +0000 @@ -926,8 +926,12 @@ bool Item::get_date(MYSQL_TIME *ltime,ui } else { - longlong value= val_int(); int was_cut; + longlong value= val_int(); + + if (null_value) + goto err; + if (number_to_datetime(value, ltime, fuzzydate, &was_cut) == LL(-1)) { char buff[22], *end; --===============1602515005269550140== 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\ # fvm8nymts900u77d # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 172f8ab9754bd953c862476668db9015ff810081 # timestamp: 2011-03-29 15:36:59 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # mcm4is73yu268c69 # # Begin bundle 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 --===============1602515005269550140==--