1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

A fix for a crashing bug with unspecified database in this type of

command:

load  data infile 'filename' into table db.table;
This commit is contained in:
unknown
2003-02-26 15:28:28 +02:00
parent c7c6abeece
commit 8300158d76

View File

@@ -90,6 +90,13 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
bool is_fifo=0; bool is_fifo=0;
LOAD_FILE_INFO lf_info; LOAD_FILE_INFO lf_info;
char * db = table_list->db ? table_list->db : thd->db; char * db = table_list->db ? table_list->db : thd->db;
char * tdb= thd->db ? thd->db : db;
/*
'tdb' can be NULL only if both table_list->db and thd->db are NULL
'db' itself can be NULL. but in that case it will generate
an error earlier open_ltable()).
*/
bool transactional_table, log_delayed; bool transactional_table, log_delayed;
DBUG_ENTER("mysql_load"); DBUG_ENTER("mysql_load");
@@ -168,10 +175,10 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
ex->file_name+=dirname_length(ex->file_name); ex->file_name+=dirname_length(ex->file_name);
#endif #endif
if (!dirname_length(ex->file_name) && if (!dirname_length(ex->file_name) &&
strlen(ex->file_name)+strlen(mysql_data_home)+strlen(thd->db)+3 < strlen(ex->file_name)+strlen(mysql_data_home)+strlen(tdb)+3 <
FN_REFLEN) FN_REFLEN)
{ {
(void) sprintf(name,"%s/%s/%s",mysql_data_home,thd->db,ex->file_name); (void) sprintf(name,"%s/%s/%s",mysql_data_home,tdb,ex->file_name);
unpack_filename(name,name); /* Convert to system format */ unpack_filename(name,name); /* Convert to system format */
} }
else else