提交 d5fd5126 authored 作者: Brian West's avatar Brian West 提交者: Mike Jerris

FS-10805: [mod_amqp] Memory Leak in mod_amqp #resolve

上级 e952469e
...@@ -86,7 +86,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_amqp_load) ...@@ -86,7 +86,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_amqp_load)
*/ */
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_amqp_shutdown) SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_amqp_shutdown)
{ {
switch_hash_index_t *hi; switch_hash_index_t *hi = NULL;
mod_amqp_producer_profile_t *producer; mod_amqp_producer_profile_t *producer;
mod_amqp_command_profile_t *command; mod_amqp_command_profile_t *command;
mod_amqp_logging_profile_t *logging; mod_amqp_logging_profile_t *logging;
...@@ -94,22 +94,26 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_amqp_shutdown) ...@@ -94,22 +94,26 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_amqp_shutdown)
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Mod starting shutting down\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Mod starting shutting down\n");
switch_event_unbind_callback(mod_amqp_producer_event_handler); switch_event_unbind_callback(mod_amqp_producer_event_handler);
while ((hi = switch_core_hash_first(mod_amqp_globals.producer_hash))) { while ((hi = switch_core_hash_first_iter(mod_amqp_globals.producer_hash, hi))) {
switch_core_hash_this(hi, NULL, NULL, (void **)&producer); switch_core_hash_this(hi, NULL, NULL, (void **)&producer);
mod_amqp_producer_destroy(&producer); mod_amqp_producer_destroy(&producer);
} }
while ((hi = switch_core_hash_first(mod_amqp_globals.command_hash))) { while ((hi = switch_core_hash_first_iter(mod_amqp_globals.command_hash, hi))) {
switch_core_hash_this(hi, NULL, NULL, (void **)&command); switch_core_hash_this(hi, NULL, NULL, (void **)&command);
mod_amqp_command_destroy(&command); mod_amqp_command_destroy(&command);
} }
switch_log_unbind_logger(mod_amqp_logging_recv); switch_log_unbind_logger(mod_amqp_logging_recv);
while ((hi = switch_core_hash_first(mod_amqp_globals.logging_hash))) { while ((hi = switch_core_hash_first_iter(mod_amqp_globals.logging_hash, hi))) {
switch_core_hash_this(hi, NULL, NULL, (void **)&logging); switch_core_hash_this(hi, NULL, NULL, (void **)&logging);
mod_amqp_logging_destroy(&logging); mod_amqp_logging_destroy(&logging);
} }
switch_core_hash_destroy(&(mod_amqp_globals.producer_hash));
switch_core_hash_destroy(&(mod_amqp_globals.command_hash));
switch_core_hash_destroy(&(mod_amqp_globals.logging_hash));
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Mod finished shutting down\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Mod finished shutting down\n");
return SWITCH_STATUS_SUCCESS; return SWITCH_STATUS_SUCCESS;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论