summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <iggy@rolltop.ignatz42.dyndns.org>2006-07-06 15:00:31 -0400
committerunknown <iggy@rolltop.ignatz42.dyndns.org>2006-07-06 15:00:31 -0400
commit471b1514f76aa88b9c856f1fcfbd71ec4c9e2643 (patch)
tree6c6704b9c905feebbef1f6948d465888f33a9e43
parent17986f7cae70ce27ef8a43b4403dbf203c3ef277 (diff)
parent0f9725ad1fb99385ab0d184cf0851670fee37bbe (diff)
downloadmariadb-git-471b1514f76aa88b9c856f1fcfbd71ec4c9e2643.tar.gz
Merge rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1-maint
into rolltop.ignatz42.dyndns.org:/mnt/storeage/mysql-4.1_bug16180
-rw-r--r--mysql-test/r/grant2.result10
-rw-r--r--mysql-test/t/grant2.test17
-rw-r--r--sql/set_var.cc3
3 files changed, 29 insertions, 1 deletions
diff --git a/mysql-test/r/grant2.result b/mysql-test/r/grant2.result
index 85963705718..c047dc033c6 100644
--- a/mysql-test/r/grant2.result
+++ b/mysql-test/r/grant2.result
@@ -143,3 +143,13 @@ flush privileges;
drop user mysqltest_3@host3;
drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
+create database mysqltest_1;
+grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
+set sql_log_off = 1;
+ERROR HY000: Access denied; you need the SUPER privilege for this operation
+set sql_log_bin = 0;
+ERROR HY000: Access denied; you need the SUPER privilege for this operation
+delete from mysql.user where user like 'mysqltest\_1';
+delete from mysql.db where user like 'mysqltest\_1';
+drop database mysqltest_1;
+flush privileges;
diff --git a/mysql-test/t/grant2.test b/mysql-test/t/grant2.test
index 79ea7f70712..9da95cd42da 100644
--- a/mysql-test/t/grant2.test
+++ b/mysql-test/t/grant2.test
@@ -238,5 +238,22 @@ connect (con9,127.0.0.1,root,,test,$MASTER_MYPORT,);
disconnect con9;
connection default;
+#
+# Bug# 16180 - Setting SQL_LOG_OFF without SUPER privilege is silently ignored
+#
+create database mysqltest_1;
+grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
+connect (con10,localhost,mysqltest_1,,);
+connection con10;
+--error 1227
+set sql_log_off = 1;
+--error 1227
+set sql_log_bin = 0;
+disconnect con10;
+connection default;
+delete from mysql.user where user like 'mysqltest\_1';
+delete from mysql.db where user like 'mysqltest\_1';
+drop database mysqltest_1;
+flush privileges;
# End of 4.1 tests
diff --git a/sql/set_var.cc b/sql/set_var.cc
index bf68a102537..920b153fadd 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -423,7 +423,8 @@ static sys_var_thd_bit sys_sql_big_tables("sql_big_tables", 0,
static sys_var_thd_bit sys_big_selects("sql_big_selects", 0,
set_option_bit,
OPTION_BIG_SELECTS);
-static sys_var_thd_bit sys_log_off("sql_log_off", 0,
+static sys_var_thd_bit sys_log_off("sql_log_off",
+ check_log_update,
set_option_bit,
OPTION_LOG_OFF);
static sys_var_thd_bit sys_log_update("sql_log_update",