From dc63377c607e93e5823b5567a5f228f324d8925a Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Mon, 15 Jun 2015 15:28:41 -0500
Subject: [PATCH] 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
---
 res/res_pjsip_outbound_registration.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/res/res_pjsip_outbound_registration.c b/res/res_pjsip_outbound_registration.c
index 1406fb1c8c..e459fa18a2 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;
-- 
GitLab