From: Joshua Colp Date: Thu, 29 Oct 2015 13:28:33 +0000 (-0300) Subject: res_pjsip_pubsub: Fix assertion when UAS dialog creation fails. X-Git-Tag: 13.7.0-rc1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a021a42adaee95d115aa3200467943fecd1f13a;p=thirdparty%2Fasterisk.git 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 --- diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c index cbedaf28c4..99376b142c 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); }