summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2001-03-21 17:09:43 +0100
committerunknown <serg@serg.mysql.com>2001-03-21 17:09:43 +0100
commit9914932787833bf1f4a65464584c31824965eb17 (patch)
tree31fe680a9aab86de22e1291297658a7e3fea1462 /sql
parentd1782bea92ebf698cdcf898007f3b015ba502493 (diff)
downloadmariadb-git-9914932787833bf1f4a65464584c31824965eb17.tar.gz
bug with mysql_change_db() fixed
BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql')
-rw-r--r--sql/sql_db.cc3
-rw-r--r--sql/table.cc2
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++;
}