From: Alexei Gradinari Date: Mon, 6 Jun 2022 22:21:24 +0000 (-0400) Subject: res_pjsip_pubsub: delete scheduled notification on RLS update X-Git-Tag: 18.13.0-rc1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c5f023af9ebe253f9c2ca9771ef229b6aff3360;p=thirdparty%2Fasterisk.git res_pjsip_pubsub: delete scheduled notification on RLS update If there is scheduled notification, we must delete it to avoid using destroyed subscriptions. ASTERISK-29906 Change-Id: I1c644e5e15a8fe43eed8e4f9112f113cbf87a40f --- diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c index a0fe2736be..d0f3717dbd 100644 --- a/res/res_pjsip_pubsub.c +++ b/res/res_pjsip_pubsub.c @@ -4061,6 +4061,12 @@ static void pubsub_on_rx_refresh(pjsip_evsub *evsub, pjsip_rx_data *rdata, new_root->version = old_root->version; sub_tree->root = new_root; sub_tree->generate_initial_notify = 1; + + /* If there is scheduled notification need to delete it to avoid use old subscriptions */ + if (sub_tree->notify_sched_id > -1) { + AST_SCHED_DEL_UNREF(sched, sub_tree->notify_sched_id, ao2_ref(sub_tree, -1)); + sub_tree->send_scheduled_notify = 0; + } shutdown_subscriptions(old_root); destroy_subscriptions(old_root); } else {