diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 80b9d6e20bfbe9cbffa6468fed68c69c2fa02220..b6b9a316cc63027fab9422bffbfa706beb37c61e 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -854,21 +854,13 @@ static File create_file(THD *thd, char *path, sql_exchange *exchange, { File file; uint option= MY_UNPACK_FILENAME; - char buff[FN_REFLEN]; #ifdef DONT_ALLOW_FULL_LOAD_DATA_PATHS option|= MY_REPLACE_DIR; // Force use of db directory #endif - char *cnt= strmake(buff, mysql_real_data_home, FN_REFLEN); - *cnt= FN_LIBCHAR; - cnt++; - cnt= strmake(cnt, thd->db ? thd->db : "", FN_REFLEN - (cnt-buff)); - *cnt= FN_LIBCHAR; - cnt++; - *cnt= 0; - - (void) fn_format(path, exchange->file_name, buff, "", option); + strxnmov(path, FN_REFLEN, mysql_real_data_home, thd->db ? thd->db : ""); + (void) fn_format(path, exchange->file_name, path, "", option); if (!access(path, F_OK)) { my_error(ER_FILE_EXISTS_ERROR, MYF(0), exchange->file_name);