Bug#6481 - storage_engine system variable allows nonsensical value

Check that the requested storage engine is enabled.
This commit is contained in:
unknown 2004-12-21 11:09:48 +00:00
parent 5c185dfd5f
commit c6b6977b9e

View file

@ -2945,9 +2945,11 @@ bool sys_var_thd_storage_engine::check(THD *thd, set_var *var)
if (var->value->result_type() == STRING_RESULT)
{
enum db_type db_type;
if (!(res=var->value->val_str(&str)) ||
!(var->save_result.ulong_value=
(ulong) ha_resolve_by_name(res->ptr(), res->length())))
(ulong) db_type= ha_resolve_by_name(res->ptr(), res->length())) ||
ha_checktype(db_type) != db_type)
{
value= res ? res->c_ptr() : "NULL";
goto err;