summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
authorGeorgi Kodinov <joro@sun.com>2009-11-03 15:49:13 +0200
committerGeorgi Kodinov <joro@sun.com>2009-11-03 15:49:13 +0200
commit45889a58c765a20e98b49bdf6e03dbf8b016f91a (patch)
tree66afcccbcc4deba9cb2cd72dee6e40ece2a6a9ad /sql/mysqld.cc
parent4519d5e4f1ce1c9081f711d88d7508f58453d219 (diff)
downloadmariadb-git-45889a58c765a20e98b49bdf6e03dbf8b016f91a.tar.gz
Bug #32167: another privilege bypass with DATA/INDEX DIRECTORY
Fixed a initialization order remark by Serg : correct directory expansion order implemented on server startup.
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r--sql/mysqld.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index ce1d562d0ca..424ca727409 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -7854,14 +7854,8 @@ static void fix_paths(void)
pos[0]= FN_LIBCHAR;
pos[1]= 0;
}
- convert_dirname(mysql_real_data_home,mysql_real_data_home,NullS);
- my_realpath(mysql_unpacked_real_data_home, mysql_real_data_home, MYF(0));
- mysql_unpacked_real_data_home_len= (int) strlen(mysql_unpacked_real_data_home);
- if (mysql_unpacked_real_data_home[mysql_unpacked_real_data_home_len-1] == FN_LIBCHAR)
- --mysql_unpacked_real_data_home_len;
-
-
convert_dirname(language,language,NullS);
+ convert_dirname(mysql_real_data_home,mysql_real_data_home,NullS);
(void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir
(void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home);
(void) my_load_path(pidfile_name,pidfile_name,mysql_real_data_home);
@@ -7869,6 +7863,12 @@ static void fix_paths(void)
"", "");
opt_plugin_dir_ptr= opt_plugin_dir;
+ my_realpath(mysql_unpacked_real_data_home, mysql_real_data_home, MYF(0));
+ mysql_unpacked_real_data_home_len=
+ (int) strlen(mysql_unpacked_real_data_home);
+ if (mysql_unpacked_real_data_home[mysql_unpacked_real_data_home_len-1] == FN_LIBCHAR)
+ --mysql_unpacked_real_data_home_len;
+
char *sharedir=get_relative_path(SHAREDIR);
if (test_if_hard_path(sharedir))
strmake(buff,sharedir,sizeof(buff)-1); /* purecov: tested */