summaryrefslogtreecommitdiff
path: root/sql/sql_db.cc
diff options
context:
space:
mode:
authorunknown <vva@eagle.mysql.r18.ru>2004-07-09 21:06:32 +0500
committerunknown <vva@eagle.mysql.r18.ru>2004-07-09 21:06:32 +0500
commitc8e416e5c503945cb7df73f69e4dcbec625b6ca7 (patch)
treef4e0812e0d513eedfac1e0d8f540cb7c09d72878 /sql/sql_db.cc
parenta4b3eec910a5d1b8fe69abb73971c6bf170a763a (diff)
parent42d5ea8e78ffa4734e33baa1aeb70d1fff5c6441 (diff)
downloadmariadb-git-c8e416e5c503945cb7df73f69e4dcbec625b6ca7.tar.gz
manual merge
charged sql/sql_db.cc only ( changed length in mysql_create_db to path_len so as it was calculated in the first unpack_dirname in my previous fix for Bug #4378 '"create database IF NOT EXISTS thing" returns an error' ) sql/sql_db.cc: manual merge ( changed length in mysql_create_db to path_len so as it was calculated in the first unpack_dirname in my previous fix for Bug #4378 '"create database IF NOT EXISTS thing" returns an error' )
Diffstat (limited to 'sql/sql_db.cc')
-rw-r--r--sql/sql_db.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 68aa0787a9b..d3804b972c8 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -378,9 +378,9 @@ int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
char path[FN_REFLEN+16];
long result= 1;
int error= 0;
- uint length;
MY_STAT stat_info;
uint create_options= create_info ? create_info->options : 0;
+ uint path_len;
DBUG_ENTER("mysql_create_db");
VOID(pthread_mutex_lock(&LOCK_mysql_create_db));
@@ -394,7 +394,8 @@ int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
/* Check directory */
strxmov(path, mysql_data_home, "/", db, NullS);
- unpack_dirname(path,path); // Convert if not unix
+ path_len= unpack_dirname(path,path); // Convert if not unix
+ path[path_len-1]= 0; // Remove last '/' from path
if (my_stat(path,&stat_info,MYF(0)))
{
@@ -413,7 +414,6 @@ int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
my_error(EE_STAT, MYF(0),path,my_errno);
goto exit;
}
- strend(path)[-1]=0; // Remove last '/' from path
if (my_mkdir(path,0777,MYF(0)) < 0)
{
my_error(ER_CANT_CREATE_DB,MYF(0),db,my_errno);
@@ -422,15 +422,15 @@ int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info,
}
}
- length= unpack_dirname(path, path);
- strmov(path+ length, MY_DB_OPT_FILE);
+ path[path_len-1]= FN_LIBCHAR;
+ strmake(path+path_len, MY_DB_OPT_FILE, sizeof(path)-path_len-1);
if (write_db_opt(thd, path, create_info))
{
/*
Could not create options file.
Restore things to beginning.
*/
- path[length]= 0;
+ path[path_len]= 0;
if (rmdir(path) >= 0)
{
error= -1;