From 044a08ae7b2bf1217cb3a84e2d7543fed0f438de Mon Sep 17 00:00:00 2001 From: Alexei Gradinari <alex2grad@gmail.com> Date: Mon, 6 Jun 2022 18:21:24 -0400 Subject: [PATCH] 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 --- res/res_pjsip_pubsub.c | 6 ++++++ 1 file changed, 6 insertions(+) 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 { -- GitLab