From: Sergey Glukhov Date: April 15 2011 8:51am Subject: bzr commit into mysql-5.1 branch (sergey.glukhov:3661) Bug#11765139 List-Archive: http://lists.mysql.com/commits/135499 X-Bug: 11765139 Message-Id: <201104150850.p3F8oit1004984@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3328583000971043915==" --===============3328583000971043915== 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:tor.didriksen@stripped 3661 Sergey Glukhov 2011-04-15 Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U Some multibyte sequences could be considered by my_mbcharlen() functions as multibyte character but more exact my_ismbchar() does not think so. In such a case this multibyte sequences is pushed into 'stack' buffer which is too small to accommodate the sequence. The fix is to allocate stack buffer in compliance with max character length. @ mysql-test/r/loaddata.result test case @ mysql-test/t/loaddata.test test case @ sql/sql_load.cc allocate stack buffer in compliance with max character length. modified: mysql-test/r/loaddata.result mysql-test/t/loaddata.test sql/sql_load.cc === modified file 'mysql-test/r/loaddata.result' --- a/mysql-test/r/loaddata.result 2010-07-14 11:54:51 +0000 +++ b/mysql-test/r/loaddata.result 2011-04-15 08:51:34 +0000 @@ -532,4 +532,11 @@ a 0 1 DROP TABLE t1; +# +# Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U +# +CREATE TABLE t1(f1 INT); +SELECT 0xE1BB30 INTO OUTFILE 't1.dat'; +LOAD DATA INFILE 't1.dat' IGNORE INTO TABLE t1 CHARACTER SET utf8; +DROP TABLE t1; End of 5.1 tests === modified file 'mysql-test/t/loaddata.test' --- a/mysql-test/t/loaddata.test 2010-07-14 11:54:51 +0000 +++ b/mysql-test/t/loaddata.test 2011-04-15 08:51:34 +0000 @@ -611,5 +611,18 @@ DROP TABLE t1; let $MYSQLD_DATADIR= `select @@datadir`; remove_file $MYSQLD_DATADIR/test/tmpp2.txt; +--echo # +--echo # Bug#11765139 58069: LOAD DATA INFILE: VALGRIND REPORTS INVALID MEMORY READS AND WRITES WITH U +--echo # + +CREATE TABLE t1(f1 INT); +EVAL SELECT 0xE1BB30 INTO OUTFILE 't1.dat'; +--disable_warnings +LOAD DATA INFILE 't1.dat' IGNORE INTO TABLE t1 CHARACTER SET utf8; +--enable_warnings + +DROP TABLE t1; +let $MYSQLD_DATADIR= `select @@datadir`; +remove_file $MYSQLD_DATADIR/test/t1.dat; --echo End of 5.1 tests === modified file 'sql/sql_load.cc' --- a/sql/sql_load.cc 2010-12-17 13:05:50 +0000 +++ b/sql/sql_load.cc 2011-04-15 08:51:34 +0000 @@ -1109,7 +1109,7 @@ READ_INFO::READ_INFO(File file_par, uint /* Set of a stack for unget if long terminators */ - uint length=max(field_term_length,line_term_length)+1; + uint length= max(cs->mbmaxlen, max(field_term_length, line_term_length)) + 1; set_if_bigger(length,line_start.length()); stack=stack_pos=(int*) sql_alloc(sizeof(int)*length); --===============3328583000971043915== 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\ # f28fgp16937b2li4 # target_branch: file:///home/gluh/MySQL/mysql-5.1/ # testament_sha1: 7e2a67bec8b49f29b600d713587a7f833647d87d # timestamp: 2011-04-15 12:51:39 +0400 # source_branch: bzr+ssh://sgluhov@stripped/bzrroot\ # /server/mysql-5.1/ # base_revision_id: tor.didriksen@stripped\ # xyjgxrv6g0ll5b6x # # Begin bundle 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 --===============3328583000971043915==--