Author: gtjoseph
Date: Wed Dec 17 18:11:24 2014
New Revision: 429720

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=429720
Log:
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
........

Merged revisions 429719 from http://svn.asterisk.org/svn/asterisk/branches/13

Modified:
    trunk/   (props changed)
    trunk/res/res_pjsip_config_wizard.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-13-merged' - no diff available.

Modified: trunk/res/res_pjsip_config_wizard.c
URL: 
http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip_config_wizard.c?view=diff&rev=429720&r1=429719&r2=429720
==============================================================================
--- trunk/res/res_pjsip_config_wizard.c (original)
+++ trunk/res/res_pjsip_config_wizard.c Wed Dec 17 18:11:24 2014
@@ -983,12 +983,13 @@
                        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);
-               }
-
-               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);
+               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);
+               }
        }
 
        AST_VECTOR_REMOVE_CMP_UNORDERED(&object_type_wizards, NULL, NOT_EQUALS, 
OTW_DELETE_CB);


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to