diff options
author | unknown <acurtis/antony@xiphis.org/ltamd64.xiphis.org> | 2006-09-25 10:59:49 -0700 |
---|---|---|
committer | unknown <acurtis/antony@xiphis.org/ltamd64.xiphis.org> | 2006-09-25 10:59:49 -0700 |
commit | 7950abcf226deb928e575065ade2de2eb143401d (patch) | |
tree | 62ee63c547b59071740009acb8240f6c02c9b6b9 /sql/sql_plugin.cc | |
parent | c73ba0f518fc1d9b35b2e9a9025ca20f1b7d60c6 (diff) | |
download | mariadb-git-7950abcf226deb928e575065ade2de2eb143401d.tar.gz |
Bug#21610
"Loaded engine does not load after restart."
Junk characters caused plugin load to fail silently.
sql/sql_plugin.cc:
junk characters cause plugin load to fail.
eliminate use of strlen().
Diffstat (limited to 'sql/sql_plugin.cc')
-rw-r--r-- | sql/sql_plugin.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 97c28dd1fa5..1a3626acaf6 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -759,14 +759,16 @@ void plugin_load(void) while (!(error= read_record_info.read_record(&read_record_info))) { DBUG_PRINT("info", ("init plugin record")); - LEX_STRING name, dl; - name.str= get_field(&mem, table->field[0]); - name.length= strlen(name.str); - dl.str= get_field(&mem, table->field[1]); - dl.length= strlen(dl.str); + String str_name, str_dl; + get_field(&mem, table->field[0], &str_name); + get_field(&mem, table->field[1], &str_dl); + + LEX_STRING name= {(char *)str_name.ptr(), str_name.length()}; + LEX_STRING dl= {(char *)str_dl.ptr(), str_dl.length()}; + if (plugin_add(&name, &dl, REPORT_TO_LOG)) - DBUG_PRINT("warning", ("Couldn't load plugin named '%s' with soname '%s'.", - name.str, dl.str)); + sql_print_warning("Couldn't load plugin named '%s' with soname '%s'.", + str_name.c_ptr(), str_dl.c_ptr()); } if (error > 0) sql_print_error(ER(ER_GET_ERRNO), my_errno); |