From c6b6977b9ee65258eef6f55a17fea8c68dcf1a0d Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2004 11:09:48 +0000 Subject: [PATCH] Bug#6481 - storage_engine system variable allows nonsensical value Check that the requested storage engine is enabled. --- sql/set_var.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/set_var.cc b/sql/set_var.cc index d10ea3e11c1..e39d9934278 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -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;