diff --git a/libmariadb/ma_client_plugin.c.in b/libmariadb/ma_client_plugin.c.in index b635f21d..dc4fd4e7 100755 --- a/libmariadb/ma_client_plugin.c.in +++ b/libmariadb/ma_client_plugin.c.in @@ -330,6 +330,7 @@ struct st_mysql_client_plugin * STDCALL mysql_client_register_plugin(MYSQL *mysql, struct st_mysql_client_plugin *plugin) { + struct st_mysql_client_plugin *found_plugin= NULL; va_list unused; LINT_INIT_STRUCT(unused); @@ -339,18 +340,11 @@ mysql_client_register_plugin(MYSQL *mysql, pthread_mutex_lock(&LOCK_load_client_plugin); /* make sure the plugin wasn't loaded meanwhile */ - if (find_plugin(plugin->name, plugin->type)) - { - my_set_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, - SQLSTATE_UNKNOWN, ER(CR_AUTH_PLUGIN_CANNOT_LOAD), - plugin->name, "it is already loaded"); - plugin= NULL; - } - else - plugin= add_plugin(mysql, plugin, 0, 0, unused); + if (!(found_plugin= find_plugin(plugin->name, plugin->type))) + found_plugin= add_plugin(mysql, plugin, 0, 0, unused); pthread_mutex_unlock(&LOCK_load_client_plugin); - return plugin; + return found_plugin; } diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index 9c9279ef..389ec5bc 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -4060,7 +4060,7 @@ my_bool mariadb_get_infov(MYSQL *mysql, enum mariadb_value value, void *arg, ... *((char **)arg)= (char *)ma_pvio_tls_cipher(mysql->net.pvio->ctls); else #endif - goto error; + *((char **)arg)= NULL; break; case MARIADB_CLIENT_ERRORS: *((char ***)arg)= (char **)client_errors;