summaryrefslogtreecommitdiff
path: root/sql/sql_plugin.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2022-04-14 16:11:04 +0400
committerAlexander Barkov <bar@mariadb.com>2022-04-14 17:12:30 +0400
commitc05fd700970ad45735caed3a6f9930d4ce19a3bd (patch)
tree8dfdb6ccccb88a61c0d7dfebe45253e1f1f5850a /sql/sql_plugin.cc
parent66832e3a6474967da7dcf22cd1c5e9368b699ef1 (diff)
downloadmariadb-git-c05fd700970ad45735caed3a6f9930d4ce19a3bd.tar.gz
MDEV-26323 use-after-poison issue of MariaDB server
Diffstat (limited to 'sql/sql_plugin.cc')
-rw-r--r--sql/sql_plugin.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 97bc17042b2..75631faccaa 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -372,7 +372,8 @@ bool check_valid_path(const char *path, size_t len)
static void fix_dl_name(MEM_ROOT *root, LEX_STRING *dl)
{
const size_t so_ext_len= sizeof(SO_EXT) - 1;
- if (my_strcasecmp(&my_charset_latin1, dl->str + dl->length - so_ext_len,
+ if (dl->length < so_ext_len ||
+ my_strcasecmp(&my_charset_latin1, dl->str + dl->length - so_ext_len,
SO_EXT))
{
char *s= (char*)alloc_root(root, dl->length + so_ext_len + 1);