mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 11:58:40 +00:00
closes issue #11285, where an unload of a module that creates a dialplan context, causes a crash when you do a 'dialplan show' of that context. This is because the registrar string is defined in the module, and the stale pointer is traversed. The reporter offered a patch that would always strdup the registrar string, which is practical, but I preferred to destroy the created contexts in each module where one is created. That seemed more symmetric. There were only 6 place in asterisk where this is done: chan_sip, chan_iax2, chan_skinny, res_features, app_dial, and app_queue. The two apps destroyed the context, but left the contexts. All is fixed now and unloads should be dialplan friendly.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89513 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1953,8 +1953,11 @@ static int unload_module(void)
|
||||
res |= ast_unregister_application(rapp);
|
||||
|
||||
if ((con = ast_context_find("app_dial_gosub_virtual_context")))
|
||||
{
|
||||
ast_context_remove_extension2(con, "s", 1, NULL);
|
||||
|
||||
ast_context_destroy(con, "app_dial"); /* leave nothing behind */
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user