mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-18 22:54:00 +00:00
114 lines
5.4 KiB
Diff
114 lines
5.4 KiB
Diff
diff --git a/mysql-test/suite/sys_vars/r/general_log_file_basic.result b/mysql-test/suite/sys_vars/r/general_log_file_basic.result
|
|
index 30bb0f3..e1fddd8 100644
|
|
--- a/mysql-test/suite/sys_vars/r/general_log_file_basic.result
|
|
+++ b/mysql-test/suite/sys_vars/r/general_log_file_basic.result
|
|
@@ -13,6 +13,16 @@ SET @@global.general_log_file = mytest.log;
|
|
ERROR 42000: Incorrect argument type to variable 'general_log_file'
|
|
SET @@global.general_log_file = 12;
|
|
ERROR 42000: Incorrect argument type to variable 'general_log_file'
|
|
+SET @@global.general_log_file = 'my.cnf';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of 'my.cnf'
|
|
+SET @@global.general_log_file = '/tmp/my.cnf';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of '/tmp/my.cnf'
|
|
+SET @@global.general_log_file = '.my.cnf';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of '.my.cnf'
|
|
+SET @@global.general_log_file = 'my.cnf\0foo';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of 'my.cnf'
|
|
+SET @@global.general_log_file = 'my.ini';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of 'my.ini'
|
|
'#----------------------FN_DYNVARS_004_03------------------------#'
|
|
SELECT @@global.general_log_file = VARIABLE_VALUE
|
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
diff --git a/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result b/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result
|
|
index c032a36..503d1c8 100644
|
|
--- a/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result
|
|
+++ b/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result
|
|
@@ -10,6 +10,16 @@ SET @@global.slow_query_log_file = mytest.log;
|
|
ERROR 42000: Incorrect argument type to variable 'slow_query_log_file'
|
|
SET @@global.slow_query_log_file = 12;
|
|
ERROR 42000: Incorrect argument type to variable 'slow_query_log_file'
|
|
+SET @@global.slow_query_log_file = 'my.cnf';
|
|
+ERROR 42000: Variable 'slow_query_log_file' can't be set to the value of 'my.cnf'
|
|
+SET @@global.slow_query_log_file = '/tmp/my.cnf';
|
|
+ERROR 42000: Variable 'slow_query_log_file' can't be set to the value of '/tmp/my.cnf'
|
|
+SET @@global.general_log_file = '.my.cnf';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of '.my.cnf'
|
|
+SET @@global.general_log_file = 'my.cnf\0foo';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of 'my.cnf'
|
|
+SET @@global.general_log_file = 'my.ini';
|
|
+ERROR 42000: Variable 'general_log_file' can't be set to the value of 'my.ini'
|
|
'#----------------------FN_DYNVARS_004_03------------------------#'
|
|
SELECT @@global.slow_query_log_file = VARIABLE_VALUE
|
|
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
diff --git a/mysql-test/suite/sys_vars/t/general_log_file_basic.test b/mysql-test/suite/sys_vars/t/general_log_file_basic.test
|
|
index 62b2105..2e24f1d 100644
|
|
--- a/mysql-test/suite/sys_vars/t/general_log_file_basic.test
|
|
+++ b/mysql-test/suite/sys_vars/t/general_log_file_basic.test
|
|
@@ -59,6 +59,20 @@ SET @@global.general_log_file = mytest.log;
|
|
--error ER_WRONG_TYPE_FOR_VAR
|
|
SET @@global.general_log_file = 12;
|
|
|
|
+#
|
|
+# MDEV-10465
|
|
+#
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = 'my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = '/tmp/my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = '.my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = 'my.cnf\0foo';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = 'my.ini';
|
|
+
|
|
|
|
--echo '#----------------------FN_DYNVARS_004_03------------------------#'
|
|
##############################################################################
|
|
diff --git a/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test b/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test
|
|
index c91ff45..5f59dc9 100644
|
|
--- a/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test
|
|
+++ b/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test
|
|
@@ -57,6 +57,20 @@ SET @@global.slow_query_log_file = mytest.log;
|
|
--error ER_WRONG_TYPE_FOR_VAR
|
|
SET @@global.slow_query_log_file = 12;
|
|
|
|
+#
|
|
+# MDEV-10465
|
|
+#
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.slow_query_log_file = 'my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.slow_query_log_file = '/tmp/my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = '.my.cnf';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = 'my.cnf\0foo';
|
|
+--error ER_WRONG_VALUE_FOR_VAR
|
|
+SET @@global.general_log_file = 'my.ini';
|
|
+
|
|
--echo '#----------------------FN_DYNVARS_004_03------------------------#'
|
|
##############################################################################
|
|
# Check if the value in GLOBAL Tables matches values in variable #
|
|
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
|
|
index 9ed27e2..31679c2 100644
|
|
--- a/sql/sys_vars.cc
|
|
+++ b/sql/sys_vars.cc
|
|
@@ -4973,6 +4973,17 @@ static bool check_log_path(sys_var *self, THD *thd, set_var *var)
|
|
return true;
|
|
}
|
|
|
|
+ static const LEX_CSTRING my_cnf= { STRING_WITH_LEN("my.cnf") };
|
|
+ static const LEX_CSTRING my_ini= { STRING_WITH_LEN("my.ini") };
|
|
+ if (path_length >= my_cnf.length)
|
|
+ {
|
|
+ if (strcasecmp(path + path_length - my_cnf.length, my_cnf.str) == 0)
|
|
+ return true; // log file name ends with "my.cnf"
|
|
+ DBUG_ASSERT(my_cnf.length == my_ini.length);
|
|
+ if (strcasecmp(path + path_length - my_ini.length, my_ini.str) == 0)
|
|
+ return true; // log file name ends with "my.ini"
|
|
+ }
|
|
+
|
|
MY_STAT f_stat;
|
|
|
|
if (my_stat(path, &f_stat, MYF(0)))
|