summaryrefslogtreecommitdiff
path: root/mysql-test/t/comments.test
diff options
context:
space:
mode:
authormalff/marcsql@weblab.(none) <>2007-08-30 12:57:05 -0600
committermalff/marcsql@weblab.(none) <>2007-08-30 12:57:05 -0600
commit4792ed42204e3ea67b7bb3d3c9613dfafc608629 (patch)
treed0addd7155640c91924f7446014d5088978c0976 /mysql-test/t/comments.test
parent80609d18fc8902646cc8187dc558f73f3314fc1b (diff)
downloadmariadb-git-4792ed42204e3ea67b7bb3d3c9613dfafc608629.tar.gz
Bug#28779 (mysql_query() allows execution of statements with unbalanced
comments) This change set is for 5.1 (manually merged) Before this fix, the server would accept queries that contained comments, even when the comments were not properly closed with a '*' '/' marker. For example, select 1 /* + 2 <EOF> would be accepted as select 1 /* + 2 */ <EOF> and executed as select 1 With this fix, the server now rejects queries with unclosed comments as syntax errors. Both regular comments ('/' '*') and special comments ('/' '*' '!') must be closed with '*' '/' to be parsed correctly.
Diffstat (limited to 'mysql-test/t/comments.test')
-rw-r--r--mysql-test/t/comments.test31
1 files changed, 31 insertions, 0 deletions
diff --git a/mysql-test/t/comments.test b/mysql-test/t/comments.test
index 8ae6ba5779e..3a18a8bd483 100644
--- a/mysql-test/t/comments.test
+++ b/mysql-test/t/comments.test
@@ -34,3 +34,34 @@ select 1/*!999992*/;
select 1 + /*!00000 2 */ + 3 /*!99999 noise*/ + 4;
+#
+# Bug#28779 (mysql_query() allows execution of statements with unbalanced
+# comments)
+#
+
+--disable_warnings
+drop table if exists table_28779;
+--enable_warnings
+
+create table table_28779 (a int);
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*' AND b = 'bar';*";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*! AND 2=2;*";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';";
+
+--error 1064
+prepare bar from "DELETE FROM table_28779 WHERE a = 7 OR 1=1/*!98765' AND b = 'bar';*";
+
+drop table table_28779;
+