From: Sergey Glukhov Date: March 28 2011 7:53am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3631) Bug#11766112 List-Archive: http://lists.mysql.com/commits/133960 X-Bug: 11766112 Message-Id: <201103280755.p2S7tdRR026381@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4355261922200388830==" --===============4355261922200388830== 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:sven.sandberg@stripped 3631 Sergey Glukhov 2011-03-28 Bug#11766112 59151:UNINITIALIZED VALUES IN EXTRACT_DATE_TIME WITH STR_TO_DATE(SPACE(..) ... Valgrind warining happens due to missing 'end of the string' check. The fix is to check if we reached the end of the string. @ mysql-test/r/func_time.result test case @ mysql-test/t/func_time.test test case @ sql/item_timefunc.cc check if we reached the end of the string after leading spaces skipping. modified: mysql-test/r/func_time.result mysql-test/t/func_time.test sql/item_timefunc.cc === modified file 'mysql-test/r/func_time.result' --- a/mysql-test/r/func_time.result 2011-02-02 18:13:11 +0000 +++ b/mysql-test/r/func_time.result 2011-03-28 07:53:18 +0000 @@ -1375,4 +1375,10 @@ Warning 1292 Truncated incorrect time va Warning 1292 Truncated incorrect time value: '' Warning 1292 Truncated incorrect time value: '' DROP TABLE t1; +# +# Bug#11766112 59151:UNINITIALIZED VALUES IN EXTRACT_DATE_TIME WITH STR_TO_DATE(SPACE(..) ... +# +SELECT STR_TO_DATE(SPACE(2),'1'); +STR_TO_DATE(SPACE(2),'1') +0000-00-00 End of 5.1 tests === modified file 'mysql-test/t/func_time.test' --- a/mysql-test/t/func_time.test 2011-02-02 18:13:11 +0000 +++ b/mysql-test/t/func_time.test 2011-03-28 07:53:18 +0000 @@ -881,4 +881,10 @@ INSERT INTO t1 VALUES (''),(''); SELECT COUNT(*) FROM t1 GROUP BY TIME_TO_SEC(a); DROP TABLE t1; +--echo # +--echo # Bug#11766112 59151:UNINITIALIZED VALUES IN EXTRACT_DATE_TIME WITH STR_TO_DATE(SPACE(..) ... +--echo # + +SELECT STR_TO_DATE(SPACE(2),'1'); + --echo End of 5.1 tests === modified file 'sql/item_timefunc.cc' --- a/sql/item_timefunc.cc 2010-11-12 10:12:15 +0000 +++ b/sql/item_timefunc.cc 2011-03-28 07:53:18 +0000 @@ -294,8 +294,8 @@ static bool extract_date_time(DATE_TIME_ for (; ptr != end && val != val_end; ptr++) { /* Skip pre-space between each argument */ - while (val != val_end && my_isspace(cs, *val)) - val++; + if ((val+= cs->cset->scan(cs, val, val_end, MY_SEQ_SPACES)) >= val_end) + break; if (*ptr == '%' && ptr+1 != end) { --===============4355261922200388830== 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\ # aowykt6l79utc28j # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 2a5633f2ba262fe29d96793e6b503addef2f368c # timestamp: 2011-03-28 11:53:33 +0400 # base_revision_id: sven.sandberg@stripped\ # hjmd2sbkzx0mp2rq # # Begin bundle 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 --===============4355261922200388830==--