summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2016-01-26 07:05:34 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-01-26 07:05:35 -0600
commitc9a0f4f8ff9785657caee25a1b1a2d1bc6f9f047 (patch)
treec7e607b2f003b73c2d76d70779880e12635b38ca
parentb2c8a99f9ed6b18f1aca489a4eb6c66f2dda83ea (diff)
parent8261bda1bf63d76f0913a5273c9b7ae1729addec (diff)
Merge "res_pjsip_pubsub: Prevent crash from AMI command on freed subscription." into 13
-rw-r--r--res/res_pjsip_pubsub.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index cdd1e8029..c91464194 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -1202,8 +1202,6 @@ static void subscription_tree_destructor(void *obj)
ast_debug(3, "Destroying subscription tree %p\n", sub_tree);
- remove_subscription(sub_tree);
-
ao2_cleanup(sub_tree->endpoint);
destroy_subscriptions(sub_tree->root);
@@ -3295,6 +3293,7 @@ static void pubsub_on_evsub_state(pjsip_evsub *evsub, pjsip_event *event)
}
}
+ remove_subscription(sub_tree);
pjsip_evsub_set_mod_data(evsub, pubsub_module.id, NULL);
sub_tree->evsub = NULL;
ast_sip_dialog_set_serializer(sub_tree->dlg, NULL);