From: Sergey Glukhov Date: March 23 2011 9:34am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3619) Bug#11766112 List-Archive: http://lists.mysql.com/commits/133594 X-Bug: 11766112 Message-Id: <201103230921.p2N9LMLP013752@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1249442729938239311==" --===============1249442729938239311== 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 3619 Sergey Glukhov 2011-03-23 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 after leading spaces skipping. @ 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-03-22 11:02:27 +0000 +++ b/mysql-test/r/func_time.result 2011-03-23 09:34:26 +0000 @@ -1381,4 +1381,10 @@ DROP TABLE t1; SET GLOBAL SQL_MODE=''; DO STR_TO_DATE((''), FROM_DAYS(@@GLOBAL.SQL_MODE)); SET GLOBAL SQL_MODE=DEFAULT; +# +# 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-03-22 11:02:27 +0000 +++ b/mysql-test/t/func_time.test 2011-03-23 09:34:26 +0000 @@ -889,4 +889,10 @@ SET GLOBAL SQL_MODE=''; DO STR_TO_DATE((''), FROM_DAYS(@@GLOBAL.SQL_MODE)); SET GLOBAL SQL_MODE=DEFAULT; +--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 2011-03-22 11:02:27 +0000 +++ b/sql/item_timefunc.cc 2011-03-23 09:34:26 +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) { --===============1249442729938239311== 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\ # kz59ituzrsn1mk9k # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: ce477b6fefe8759176740c8df8b8282ba79ecff8 # timestamp: 2011-03-23 12:34:32 +0300 # base_revision_id: sergey.glukhov@stripped\ # pnxl2257a4g8uh3b # # Begin bundle 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 cQgRk3AScmkTptCltmaphK8n/xdyRThQkFG8ltQ= --===============1249442729938239311==--