Addendum 3 for bug #BUG#11764517 : expand secure_file_priv to the real

patch so that it can later be compared with patchs with expanded symlinks
This commit is contained in:
Georgi Kodinov 2011-05-05 12:10:49 +03:00
parent 10afe0993e
commit 693fee5d56
4 changed files with 27 additions and 17 deletions

View File

@ -873,10 +873,6 @@ sub command_line_setup () {
last;
}
}
# point vardir to the mem location
$opt_vardir= $opt_mem;
undef $opt_mem;
}
# --------------------------------------------------------------------------

View File

@ -193,12 +193,6 @@ select * from t1;
a b c
10 NULL Ten
15 NULL Fifteen
show variables like "secure_file_pri%";
Variable_name Value
secure_file_priv MYSQLTEST_VARDIR/
select @@secure_file_priv;
@@secure_file_priv
MYSQLTEST_VARDIR/
set @@secure_file_priv= 0;
ERROR HY000: Variable 'secure_file_priv' is a read only variable
truncate table t1;

View File

@ -149,10 +149,16 @@ select * from t1;
#
# It should not be possible to load from a file outside of vardir
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
show variables like "secure_file_pri%";
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
select @@secure_file_priv;
# The following lines were disabled because of patch for
# bug 50373. MYSQLTEST_VARDIR doesn't rewrite symlinks
# to real paths, but this is done for secure_file_priv.
# Because of this the result can't be replaced if the
# test suite runs with the --mem option which creates
# symlinks to the ramdisk.
#--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
#show variables like "secure_file_pri%";
#--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
#select @@secure_file_priv;
--error 1238
set @@secure_file_priv= 0;

View File

@ -7974,9 +7974,23 @@ static void fix_paths(void)
*/
if (opt_secure_file_priv)
{
convert_dirname(buff, opt_secure_file_priv, NullS);
my_free(opt_secure_file_priv, MYF(0));
opt_secure_file_priv= my_strdup(buff, MYF(MY_FAE));
if (*opt_secure_file_priv == 0)
{
opt_secure_file_priv= 0;
}
else
{
if (strlen(opt_secure_file_priv) >= FN_REFLEN)
opt_secure_file_priv[FN_REFLEN-1]= '\0';
if (my_realpath(buff, opt_secure_file_priv, 0))
{
sql_print_warning("Failed to normalize the argument for --secure-file-priv.");
exit(1);
}
char *secure_file_real_path= (char *)my_malloc(FN_REFLEN, MYF(MY_FAE));
convert_dirname(secure_file_real_path, buff, NullS); my_free(opt_secure_file_priv, MYF(0));
opt_secure_file_priv= secure_file_real_path;
}
}
}