diff options
author | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2004-12-21 11:09:48 +0000 |
---|---|---|
committer | unknown <acurtis@pcgem.rdg.cyberkinetica.com> | 2004-12-21 11:09:48 +0000 |
commit | c6b6977b9ee65258eef6f55a17fea8c68dcf1a0d (patch) | |
tree | 238cf13dc9bfe57fb5e834890642af1b9f92f035 /sql | |
parent | 5c185dfd5f157f591377377ad7f958f064856dfa (diff) | |
download | mariadb-git-c6b6977b9ee65258eef6f55a17fea8c68dcf1a0d.tar.gz |
Bug#6481 - storage_engine system variable allows nonsensical value
Check that the requested storage engine is enabled.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/set_var.cc | 4 |
1 files changed, 3 insertions, 1 deletions
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; |