mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 08:13:22 +00:00
Merge "Fix potential crash after unload of func_periodic_hook or test_message."
This commit is contained in:
@@ -446,13 +446,9 @@ static struct ast_custom_function hook_function = {
|
|||||||
.write = hook_write,
|
.write = hook_write,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct ast_context *func_periodic_hook_context;
|
|
||||||
|
|
||||||
static int unload_module(void)
|
static int unload_module(void)
|
||||||
{
|
{
|
||||||
if (func_periodic_hook_context) {
|
ast_context_destroy(NULL, AST_MODULE);
|
||||||
ast_context_destroy(func_periodic_hook_context, AST_MODULE);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ast_custom_function_unregister(&hook_function);
|
return ast_custom_function_unregister(&hook_function);
|
||||||
}
|
}
|
||||||
@@ -461,9 +457,7 @@ static int load_module(void)
|
|||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
func_periodic_hook_context = ast_context_find_or_create(NULL, NULL,
|
if (!ast_context_find_or_create(NULL, NULL, context_name, AST_MODULE)) {
|
||||||
context_name, AST_MODULE);
|
|
||||||
if (!func_periodic_hook_context) {
|
|
||||||
ast_log(LOG_ERROR, "Failed to create %s dialplan context.\n", context_name);
|
ast_log(LOG_ERROR, "Failed to create %s dialplan context.\n", context_name);
|
||||||
return AST_MODULE_LOAD_DECLINE;
|
return AST_MODULE_LOAD_DECLINE;
|
||||||
}
|
}
|
||||||
|
@@ -51,8 +51,6 @@ ASTERISK_REGISTER_FILE()
|
|||||||
/*! \brief The number of user events we should get in a dialplan test */
|
/*! \brief The number of user events we should get in a dialplan test */
|
||||||
#define DEFAULT_EXPECTED_EVENTS 4
|
#define DEFAULT_EXPECTED_EVENTS 4
|
||||||
|
|
||||||
static struct ast_context *test_message_context;
|
|
||||||
|
|
||||||
/*! \brief The current number of received user events */
|
/*! \brief The current number of received user events */
|
||||||
static int received_user_events;
|
static int received_user_events;
|
||||||
|
|
||||||
@@ -822,9 +820,7 @@ static int unload_module(void)
|
|||||||
AST_TEST_UNREGISTER(test_message_has_destination_handler);
|
AST_TEST_UNREGISTER(test_message_has_destination_handler);
|
||||||
AST_TEST_UNREGISTER(test_message_msg_send);
|
AST_TEST_UNREGISTER(test_message_msg_send);
|
||||||
|
|
||||||
if (test_message_context) {
|
ast_context_destroy(NULL, AST_MODULE);
|
||||||
ast_context_destroy(test_message_context, AST_MODULE);
|
|
||||||
}
|
|
||||||
|
|
||||||
ast_manager_unregister_hook(&user_event_hook);
|
ast_manager_unregister_hook(&user_event_hook);
|
||||||
|
|
||||||
@@ -835,8 +831,7 @@ static int create_test_dialplan(void)
|
|||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
test_message_context = ast_context_find_or_create(NULL, NULL, TEST_CONTEXT, AST_MODULE);
|
if (!ast_context_find_or_create(NULL, NULL, TEST_CONTEXT, AST_MODULE)) {
|
||||||
if (!test_message_context) {
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user