summaryrefslogtreecommitdiff
path: root/sql/sql_load.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2010-01-15 17:27:55 +0200
committerMichael Widenius <monty@askmonty.org>2010-01-15 17:27:55 +0200
commitd8ecbbe63471f958aa70443545b63d88d2db0230 (patch)
tree32a6f432080d9125b3619f8935eb5b1de00e861d /sql/sql_load.cc
parentd121e6630519a66eec7c953ee0eae623f592ce87 (diff)
parent6d69089845ed4c50df0ca8136a2cdacb8f2e1380 (diff)
downloadmariadb-git-d8ecbbe63471f958aa70443545b63d88d2db0230.tar.gz
Merge with MySQL 5.1.42
- Marked a couple of tests with --big - Fixed xtradb/handler/ha_innodb.cc to call explain_filename() storage/xtradb/handler/ha_innodb.cc: Call explain_filename() to get proper names for partitioned tables
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r--sql/sql_load.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index 2467116d8dc..d9c3868092c 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -304,7 +304,8 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
else
{
(void) fn_format(name, ex->file_name, mysql_real_data_home, "",
- MY_RELATIVE_PATH | MY_UNPACK_FILENAME);
+ MY_RELATIVE_PATH | MY_UNPACK_FILENAME |
+ MY_RETURN_REAL_PATH);
#if !defined(__WIN__) && ! defined(__NETWARE__)
MY_STAT stat_info;
if (!my_stat(name,&stat_info,MYF(MY_WME)))
@@ -347,12 +348,16 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
DBUG_ASSERT(FALSE);
#endif
}
- else if (opt_secure_file_priv &&
- strncmp(opt_secure_file_priv, name, strlen(opt_secure_file_priv)))
+ else if (opt_secure_file_priv)
{
- /* Read only allowed from within dir specified by secure_file_priv */
- my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--secure-file-priv");
- DBUG_RETURN(TRUE);
+ char secure_file_real_path[FN_REFLEN];
+ (void) my_realpath(secure_file_real_path, opt_secure_file_priv, 0);
+ if (strncmp(secure_file_real_path, name, strlen(secure_file_real_path)))
+ {
+ /* Read only allowed from within dir specified by secure_file_priv */
+ my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0), "--secure-file-priv");
+ DBUG_RETURN(TRUE);
+ }
}
}