summaryrefslogtreecommitdiff
path: root/res/res_pjsip_pubsub.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2015-10-29 10:28:33 -0300
committerJoshua Colp <jcolp@digium.com>2015-10-29 08:33:08 -0500
commitb522a5e30fa02f56346a228de946e4404e57468f (patch)
tree0adf5860c06920caa301d078fb272566f94e01d1 /res/res_pjsip_pubsub.c
parenta186c9ee3080dc2d8f3b1af8322130c814aa9608 (diff)
res_pjsip_pubsub: Fix assertion when UAS dialog creation fails.
When compiled with assertions enabled one will occur when destroying the subscription tree when UAS dialog creation fails. This is because the code assumes that a dialog will always exist on a subscription tree when in reality during this specific scenario it won't. This change makes it so a dialog is not removed from the subscription tree if it is not present. ASTERISK-25505 #close Change-Id: Id5c182b055aacc5e66c80546c64804ce19218dee
Diffstat (limited to 'res/res_pjsip_pubsub.c')
-rw-r--r--res/res_pjsip_pubsub.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c
index 697f3a4d2..bbf212862 100644
--- a/res/res_pjsip_pubsub.c
+++ b/res/res_pjsip_pubsub.c
@@ -1208,7 +1208,10 @@ static void subscription_tree_destructor(void *obj)
destroy_subscriptions(sub_tree->root);
- ast_sip_push_task_synchronous(sub_tree->serializer, subscription_unreference_dialog, sub_tree);
+ if (sub_tree->dlg) {
+ ast_sip_push_task_synchronous(sub_tree->serializer, subscription_unreference_dialog, sub_tree);
+ }
+
ast_taskprocessor_unreference(sub_tree->serializer);
ast_module_unref(ast_module_info->self);
}