diff options
author | Georgi Kodinov <joro@sun.com> | 2009-11-03 15:49:13 +0200 |
---|---|---|
committer | Georgi Kodinov <joro@sun.com> | 2009-11-03 15:49:13 +0200 |
commit | 45889a58c765a20e98b49bdf6e03dbf8b016f91a (patch) | |
tree | 66afcccbcc4deba9cb2cd72dee6e40ece2a6a9ad /sql/mysqld.cc | |
parent | 4519d5e4f1ce1c9081f711d88d7508f58453d219 (diff) | |
download | mariadb-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.cc | 14 |
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 */ |