From: Richard Mudgett Date: Mon, 15 Jun 2015 20:28:41 +0000 (-0500) Subject: res_pjsip_outbound_registration.c: Use ast_sorcery_object_unregister() API X-Git-Tag: 13.5.0-rc1~74^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c6a95a9ac605c53d1a5863528ff940221684ea3;p=thirdparty%2Fasterisk.git res_pjsip_outbound_registration.c: Use ast_sorcery_object_unregister() API The sorcery pjsip 'registration' config object needs to be destroyed on module unload. Otherwise, a reload of res_pjsip could try to use callbacks for a previously unloaded instance of the module provided by ast_sorcery_object_register() or one of the variants. Also, if res_pjsip_outbound_registration were subsequently reloaded, the sorcery config field objects would be registered in sorcery twice. ASTERISK-24907 Reported by: Kevin Harwell Change-Id: I304fad13dece2604af48353f6c6d9d5c7b064697 --- diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c index 78b863f499..27e79bd893 100644 --- a/res/res_pjsip_outbound_registration.c +++ b/res/res_pjsip_outbound_registration.c @@ -1775,6 +1775,8 @@ static int unload_module(void) ast_sorcery_observer_remove(ast_sip_get_sorcery(), "auth", &observer_callbacks_auth); ast_sorcery_instance_observer_remove(ast_sip_get_sorcery(), &observer_callbacks_registrations); + ast_sorcery_object_unregister(ast_sip_get_sorcery(), "registration"); + ao2_global_obj_release(current_states); return 0;