summaryrefslogtreecommitdiff
path: root/sql/sql_plugin.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2019-07-25 13:27:11 +0200
committerOleksandr Byelkin <sanja@mariadb.com>2019-07-25 13:27:11 +0200
commitae476868a5394041a00e75a29c7d45917e8dfae8 (patch)
treeb2f82005fe87bc5ce1ea92504b505a9d4e8b9781 /sql/sql_plugin.cc
parent8d0dabc56b09c6b40db15aac7da0da43d988759d (diff)
parent2536c0b1ebf6c5012ae34435d82fb2f5fa54aea5 (diff)
downloadmariadb-git-ae476868a5394041a00e75a29c7d45917e8dfae8.tar.gz
Merge branch '5.5' into 10.1
Diffstat (limited to 'sql/sql_plugin.cc')
-rw-r--r--sql/sql_plugin.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 5350e4440f0..c7f36014003 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -747,9 +747,9 @@ static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
This is done to ensure that only approved libraries from the
plugin directory are used (to make this even remotely secure).
*/
- if (check_valid_path(dl->str, dl->length) ||
- check_string_char_length((LEX_STRING *) dl, 0, NAME_CHAR_LEN,
+ if (check_string_char_length((LEX_STRING *) dl, 0, NAME_CHAR_LEN,
system_charset_info, 1) ||
+ check_valid_path(dl->str, dl->length) ||
plugin_dir_len + dl->length + 1 >= FN_REFLEN)
{
report_error(report, ER_UDF_NO_PATHS);
@@ -1814,6 +1814,9 @@ static void plugin_load(MEM_ROOT *tmp_root)
LEX_STRING name= {(char *)str_name.ptr(), str_name.length()};
LEX_STRING dl= {(char *)str_dl.ptr(), str_dl.length()};
+ if (!name.length || !dl.length)
+ continue;
+
/*
there're no other threads running yet, so we don't need a mutex.
but plugin_add() before is designed to work in multi-threaded