From: Sergey Glukhov Date: March 30 2011 7:08am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3643) Bug#11766124 List-Archive: http://lists.mysql.com/commits/134207 X-Bug: 11766124 Message-Id: <201103300710.p2U7AKqB009113@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1580276225489359859==" --===============1580276225489359859== 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 3643 Sergey Glukhov 2011-03-30 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-30 07:00:41 +0000 +++ b/mysql-test/r/func_time.result 2011-03-30 07:08:35 +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-30 07:00:41 +0000 +++ b/mysql-test/t/func_time.test 2011-03-30 07:08:35 +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-30 07:08:35 +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; --===============1580276225489359859== 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\ # f715tu7n1tmwno8x # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 96e9745842428a76d75baad13a1b55269bcc76da # timestamp: 2011-03-30 11:08:40 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: sergey.glukhov@stripped\ # 8sniyg6fdtrfxlq7 # # Begin bundle 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 --===============1580276225489359859==--