summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2015-10-25 10:12:58 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2015-10-25 10:12:58 -0500
commitc7651da5d1d1c7b3dc9a574c592ed4328226203d (patch)
tree3217118d35c57feba53363b86ae69b8b8aecc9c8 /res
parent90f0ed5475da57ca4ffb5437563997b3b6979f52 (diff)
parentad395080957b33a17f6cfe2c83697bebef286c25 (diff)
Merge "res_pjsip_pubsub: Prevent crashes on final NOTIFY." into 13
Diffstat (limited to 'res')
-rw-r--r--res/res_pjsip_pubsub.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index bb2f24395..2391c883a 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -598,6 +598,7 @@ static void subscription_persistence_remove(struct sip_subscription_tree *sub_tr
ast_sorcery_delete(ast_sip_get_sorcery(), sub_tree->persistence);
ao2_ref(sub_tree->persistence, -1);
+ sub_tree->persistence = NULL;
}
@@ -1185,7 +1186,6 @@ static void subscription_tree_destructor(void *obj)
remove_subscription(sub_tree);
- subscription_persistence_remove(sub_tree);
ao2_cleanup(sub_tree->endpoint);
destroy_subscriptions(sub_tree->root);
@@ -3289,6 +3289,7 @@ static void pubsub_on_evsub_state(pjsip_evsub *evsub, pjsip_event *event)
ast_sip_dialog_set_serializer(sub_tree->dlg, NULL);
ast_sip_dialog_set_endpoint(sub_tree->dlg, NULL);
sub_tree->dlg = NULL;
+ subscription_persistence_remove(sub_tree);
shutdown_subscriptions(sub_tree->root);
/* Remove evsub's reference to the sub_tree */