diff --git a/src/mosquitto_broker_internal.h b/src/mosquitto_broker_internal.h index 19277393..0286db1a 100644 --- a/src/mosquitto_broker_internal.h +++ b/src/mosquitto_broker_internal.h @@ -178,6 +178,7 @@ struct mosquitto__auth_plugin{ void *lib; void *user_data; int (*plugin_version)(void); + struct mosquitto_plugin_id_t *identifier; FUNC_plugin_init_v5 plugin_init_v5; FUNC_plugin_cleanup_v5 plugin_cleanup_v5; diff --git a/src/plugin.c b/src/plugin.c index 9095de37..c7c84b0d 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -86,6 +86,7 @@ int plugin__load_v5(struct mosquitto__listener *listener, struct mosquitto__auth plugin->lib = lib; plugin->user_data = NULL; + plugin->identifier = pid; if(plugin->plugin_init_v5){ rc = plugin->plugin_init_v5(pid, &plugin->user_data, options, option_count); diff --git a/src/security.c b/src/security.c index 2109b9e7..9e3bbcf6 100644 --- a/src/security.c +++ b/src/security.c @@ -406,6 +406,8 @@ static void security__module_cleanup_single(struct mosquitto__security_options * opts->auth_plugin_configs[i].plugin.user_data, opts->auth_plugin_configs[i].options, opts->auth_plugin_configs[i].option_count); + mosquitto__free(opts->auth_plugin_configs[i].plugin.identifier); + opts->auth_plugin_configs[i].plugin.identifier = NULL; }else if(opts->auth_plugin_configs[i].plugin.version == 4){ opts->auth_plugin_configs[i].plugin.plugin_cleanup_v4(