diff options
author | Tatiana A. Nurnberg <azundris@mysql.com> | 2009-10-27 06:16:02 -0700 |
---|---|---|
committer | Tatiana A. Nurnberg <azundris@mysql.com> | 2009-10-27 06:16:02 -0700 |
commit | 2f069a2c9b607ab7d4de4c1c18d6afd62f09048c (patch) | |
tree | 090cd6c0c8479ef071f1edabbf4b79c396257a4a /sql/sql_plugin.cc | |
parent | 842039a1fb6aa360bf0bf50c5cff3b18b36d4833 (diff) | |
download | mariadb-git-2f069a2c9b607ab7d4de4c1c18d6afd62f09048c.tar.gz |
Bug#46586: When using the plugin interface the type "set" for options caused a crash.
"What do you mean, there's a bug? There isn't even code!"
There was some token code for plug-in variables of the SET type,
but clearly this never worked, or was subject to massive bit rot
since. Bug-fixes ... fail-safes ... tests -- fais au mieux, mon chou!
Diffstat (limited to 'sql/sql_plugin.cc')
-rw-r--r-- | sql/sql_plugin.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index b411d5e3095..bafc601d142 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -2066,7 +2066,7 @@ static int check_func_set(THD *thd, struct st_mysql_sys_var *var, const char *strvalue= "NULL", *str; TYPELIB *typelib; ulonglong result; - uint error_len; + uint error_len= 0; // init as only set on error bool not_used; int length; @@ -2665,7 +2665,9 @@ uchar* sys_var_pluginvar::value_ptr(THD *thd, enum_var_type type, { if (!(value & mask)) continue; - str.append(typelib->type_names[i], typelib->type_lengths[i]); + str.append(typelib->type_names[i], typelib->type_lengths + ? typelib->type_lengths[i] + : strlen(typelib->type_names[i])); str.append(','); } |