summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2017-05-23 11:09:47 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2017-05-23 11:09:47 +0300
commit8f643e2063c9890a353149f39ef85b2cf3151fd0 (patch)
treec5468b905c8858dc1cc80ccb2072a923b28c8783 /sql-common
parent3aecedb2f8f99c446a5ba0b02efcf422a252c9e8 (diff)
parentb61700c22104b513caa9a85e5c6529aa5f2bf4e4 (diff)
downloadmariadb-git-8f643e2063c9890a353149f39ef85b2cf3151fd0.tar.gz
Merge 10.1 into 10.2
Diffstat (limited to 'sql-common')
-rw-r--r--sql-common/client_plugin.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sql-common/client_plugin.c b/sql-common/client_plugin.c
index dd87b01d932..f93e50125c5 100644
--- a/sql-common/client_plugin.c
+++ b/sql-common/client_plugin.c
@@ -375,8 +375,7 @@ mysql_load_plugin_v(MYSQL *mysql, const char *name, int type,
if (!(sym= dlsym(dlhandle, plugin_declarations_sym)))
{
errmsg= "not a plugin";
- (void)dlclose(dlhandle);
- goto err;
+ goto errc;
}
plugin= (struct st_mysql_client_plugin*)sym;
@@ -384,19 +383,19 @@ mysql_load_plugin_v(MYSQL *mysql, const char *name, int type,
if (type >=0 && type != plugin->type)
{
errmsg= "type mismatch";
- goto err;
+ goto errc;
}
if (strcmp(name, plugin->name))
{
errmsg= "name mismatch";
- goto err;
+ goto errc;
}
if (type < 0 && find_plugin(name, plugin->type))
{
errmsg= "it is already loaded";
- goto err;
+ goto errc;
}
plugin= add_plugin(mysql, plugin, dlhandle, argc, args);
@@ -406,6 +405,8 @@ mysql_load_plugin_v(MYSQL *mysql, const char *name, int type,
DBUG_PRINT ("leave", ("plugin loaded ok"));
DBUG_RETURN (plugin);
+errc:
+ dlclose(dlhandle);
err:
mysql_mutex_unlock(&LOCK_load_client_plugin);
DBUG_PRINT ("leave", ("plugin load error : %s", errmsg));