Commit c6b6977b authored by unknown's avatar unknown

Bug#6481 - storage_engine system variable allows nonsensical value

  Check that the requested storage engine is enabled.

parent 5c185dfd
...@@ -2945,9 +2945,11 @@ bool sys_var_thd_storage_engine::check(THD *thd, set_var *var) ...@@ -2945,9 +2945,11 @@ bool sys_var_thd_storage_engine::check(THD *thd, set_var *var)
if (var->value->result_type() == STRING_RESULT) if (var->value->result_type() == STRING_RESULT)
{ {
enum db_type db_type;
if (!(res=var->value->val_str(&str)) || if (!(res=var->value->val_str(&str)) ||
!(var->save_result.ulong_value= !(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"; value= res ? res->c_ptr() : "NULL";
goto err; goto err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment