mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-03 11:11:05 +00:00
res_pjsip_config_wizard: fix unload SEGV
If certain pjsip modules aren't loaded, the wizard causes a SEGV when it unloads. Added a check for the presense of the object type wizard before trying to clean it up. Tested-by: George Joseph git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429719 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -983,12 +983,13 @@ static int unload_module(void)
|
||||
ao2_container_alloc_list(AO2_ALLOC_OPT_LOCK_NOLOCK, 0, NULL, NULL), ao2_cleanup);
|
||||
|
||||
otw = find_wizard(object_types[i]);
|
||||
if (otw->sorcery) {
|
||||
ast_sorcery_instance_observer_remove(otw->sorcery, &observer);
|
||||
if (otw) {
|
||||
if (otw->sorcery) {
|
||||
ast_sorcery_instance_observer_remove(otw->sorcery, &observer);
|
||||
}
|
||||
otw->wizard->retrieve_multiple(otw->sorcery, otw->wizard_data, object_types[i], existing, NULL);
|
||||
ao2_callback(existing, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, delete_existing_cb, otw);
|
||||
}
|
||||
|
||||
otw->wizard->retrieve_multiple(otw->sorcery, otw->wizard_data, object_types[i], existing, NULL);
|
||||
ao2_callback(existing, OBJ_NODATA | OBJ_UNLINK | OBJ_MULTIPLE, delete_existing_cb, otw);
|
||||
}
|
||||
|
||||
AST_VECTOR_REMOVE_CMP_UNORDERED(&object_type_wizards, NULL, NOT_EQUALS, OTW_DELETE_CB);
|
||||
|
Reference in New Issue
Block a user