diff options
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_db.cc | 3 | ||||
-rw-r--r-- | sql/table.cc | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/sql/sql_db.cc b/sql/sql_db.cc index ed55c2b77ed..5243498f7fc 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -264,9 +264,10 @@ bool mysql_change_db(THD *thd,const char *name) send_error(&thd->net,ER_NO_DB_ERROR); /* purecov: inspected */ DBUG_RETURN(1); /* purecov: inspected */ } - if (length > NAME_LEN) + if ((length > NAME_LEN) || check_db_name(dbname)) { net_printf(&thd->net,ER_WRONG_DB_NAME, dbname); + x_free(dbname); DBUG_RETURN(1); } DBUG_PRINT("general",("Use database: %s", dbname)); diff --git a/sql/table.cc b/sql/table.cc index a6d524840d9..eed4170c14a 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1052,7 +1052,7 @@ bool check_db_name(const char *name) } } #endif - if (*name == '/' || *name == FN_LIBCHAR) + if (*name == '/' || *name == FN_LIBCHAR || *name == FN_EXTCHAR) return 1; name++; } |