From 3a1f9c5dab3fbb2159575d74721aa0f4ddc3d078 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 2 Nov 2016 15:52:13 +0000 Subject: res_stasis: Don't unsubscribe from a NULL bridge. A NULL bridge has special meaning in res_stasis for unsubscribing. It means that a subscription to ALL bridges should be removed. This should not be done as part of the normal subscription management in the res_stasis channel loop. ASTERISK-26468 Change-Id: I6d5bea8246dd13a22ef86b736aefbf2a39c15af0 --- res/res_stasis.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'res/res_stasis.c') diff --git a/res/res_stasis.c b/res/res_stasis.c index 1183f67b8..19257e9ef 100644 --- a/res/res_stasis.c +++ b/res/res_stasis.c @@ -1315,7 +1315,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc, bridge = ao2_bump(stasis_app_get_bridge(control)); if (bridge != last_bridge) { - app_unsubscribe_bridge(app, last_bridge); + if (last_bridge) { + app_unsubscribe_bridge(app, last_bridge); + } if (bridge) { app_subscribe_bridge(app, bridge); } @@ -1376,7 +1378,9 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc, ast_bridge_depart(chan); } - app_unsubscribe_bridge(app, stasis_app_get_bridge(control)); + if (stasis_app_get_bridge(control)) { + app_unsubscribe_bridge(app, stasis_app_get_bridge(control)); + } ao2_cleanup(bridge); /* Only publish a stasis_end event if it hasn't already been published */ -- cgit v1.2.3