From: Bjorn Munch Date: September 15 2010 12:58pm Subject: bzr commit into mysql-5.1-mtr branch (bjorn.munch:2931) Bug#56753 List-Archive: http://lists.mysql.com/commits/118305 X-Bug: 56753 Message-Id: <201009151258.o8FCwY0c015203@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0231830213==" --===============0231830213== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/backtick-51/ based on revid:bjorn.munch@stripped 2931 Bjorn Munch 2010-09-15 Bug #56753 mtr silently ignores junk after backticks When stepping backward to end of `` expression, check for illegal chars modified: client/mysqltest.cc mysql-test/include/setup_fake_relay_log.inc mysql-test/r/mysqltest.result mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test mysql-test/t/mysqltest.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-09-14 12:04:37 +0000 +++ b/client/mysqltest.cc 2010-09-15 12:56:22 +0000 @@ -2181,8 +2181,14 @@ void var_query_set(VAR *var, const char DBUG_ENTER("var_query_set"); LINT_INIT(res); + /* Only white space or ) allowed past ending ` */ while (end > query && *end != '`') + { + if (*end && (*end != ' ' && *end != '\t' && *end != '\n' && *end != ')')) + die("Spurious text after `query` expression"); --end; + } + if (query == end) die("Syntax error in query, missing '`'"); ++query; === modified file 'mysql-test/include/setup_fake_relay_log.inc' --- a/mysql-test/include/setup_fake_relay_log.inc 2010-02-02 15:16:47 +0000 +++ b/mysql-test/include/setup_fake_relay_log.inc 2010-09-15 12:56:22 +0000 @@ -72,7 +72,7 @@ copy_file $fake_relay_log $_fake_relay_l if (`SELECT LENGTH(@@secure_file_priv) > 0`) { - -- let $_file_priv_dir= `SELECT @@secure_file_priv`; + -- let $_file_priv_dir= `SELECT @@secure_file_priv` -- let $_suffix= `SELECT UUID()` -- let $_tmp_file= $_file_priv_dir/fake-index.$_suffix === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2010-08-10 10:13:58 +0000 +++ b/mysql-test/r/mysqltest.result 2010-09-15 12:56:22 +0000 @@ -177,6 +177,9 @@ mysqltest: At line 1: End of line junk d " mysqltest: At line 1: Extra delimiter ";" found mysqltest: At line 1: Extra delimiter ";" found +mysqltest: At line 1: Spurious text after `query` expression +mysqltest: At line 1: Spurious text after `query` expression +mysqltest: At line 2: Spurious text after `query` expression mysqltest: At line 1: Missing argument(s) to 'error' mysqltest: At line 1: Missing argument(s) to 'error' mysqltest: At line 1: The sqlstate definition must start with an uppercase S === modified file 'mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test' --- a/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test 2010-01-14 10:49:40 +0000 +++ b/mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test 2010-09-15 12:56:22 +0000 @@ -205,7 +205,7 @@ DROP TABLE `t1`; -- echo === Using mysqlbinlog to detect failure. Before the patch mysqlbinlog would find a corrupted event, thence would fail. --- let $MYSQLD_DATADIR= `SELECT @@datadir`; +-- let $MYSQLD_DATADIR= `SELECT @@datadir` -- exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug42749.binlog -- remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug42749.binlog @@ -330,7 +330,7 @@ while($ntables) -- echo ### assertion: check that binlog is not corrupt. Using mysqlbinlog to -- echo ### detect failure. Before the patch mysqlbinlog would find -- echo ### a corrupted event, thence would fail. --- let $MYSQLD_DATADIR= `SELECT @@datadir`; +-- let $MYSQLD_DATADIR= `SELECT @@datadir` -- exec $MYSQL_BINLOG -v --hex $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug50018.binlog ## clean up === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2010-08-10 10:13:58 +0000 +++ b/mysql-test/t/mysqltest.test 2010-09-15 12:56:22 +0000 @@ -494,6 +494,23 @@ remove_file $MYSQLTEST_VARDIR/tmp/mysqlt --error 1 --exec echo "--disable_query_log;" | $MYSQL_TEST 2>&1 +# +# Extra text after `` +# +--error 1 +-- exec echo "let \$x= \`select 1\` BOO ;" | $MYSQL_TEST 2>&1 +--error 1 +-- exec echo "--let \$x= \`select 1\`;" | $MYSQL_TEST 2>&1 +--write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql +# Missing ; in next line should be detected and cause failure +let $x= `select 1` +let $x= 2; +echo $x; +EOF +--error 1 +--exec $MYSQL_TEST < $MYSQLTEST_VARDIR/tmp/mysqltest.sql 2>&1 +remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql; + # Allow trailing # comment --sleep 1 # Wait for insert delayed to be executed. --===============0231830213== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/backtick-51/ # testament_sha1: 184c5b160a0cf1284f9b491be33a4276a7ac623f # timestamp: 2010-09-15 14:58:34 +0200 # base_revision_id: bjorn.munch@stripped\ # 56w52t6vqpdy12kd # # Begin bundle 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 --===============0231830213==--