summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2016-01-26 07:05:52 -0600
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-01-26 07:05:52 -0600
commitf8bf72a417bf5e6d6149b657fa806174b82430ce (patch)
treee188faf9fb714f4cfa0a5819920c691b5da85498 /res
parent3f1b8a01d699e72f75a8551804daa0e95a551fbe (diff)
parentb073244c511f9634de57ea401ab9dbebcf2390e8 (diff)
Merge "res_pjsip_pubsub: Prevent crash from AMI command on freed subscription."
Diffstat (limited to 'res')
-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 a703e29a1..dc7f5ed9e 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);