diff options
Diffstat (limited to 'res')
-rw-r--r-- | res/res_stasis.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/res/res_stasis.c b/res/res_stasis.c index 54f65150e..24c2b6598 100644 --- a/res/res_stasis.c +++ b/res/res_stasis.c @@ -1328,7 +1328,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); } @@ -1389,7 +1391,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 */ |