ARI: Resolve a subscription leak against implicit bridge subscriptions
authorJonathan Rose <jrose@digium.com>
Tue, 25 Mar 2014 15:56:05 +0000 (15:56 +0000)
committerJonathan Rose <jrose@digium.com>
Tue, 25 Mar 2014 15:56:05 +0000 (15:56 +0000)
When a channel in a stasis application is joined to a bridge, a subscription
for that bridge is created implicitly for the stasis application serving the
channel. Prior to this patch, subsequent removals of the channel from the
bridge would leave the subscription open.

Review: https://reviewboard.asterisk.org/r/3380/
........

Merged revisions 411086 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@411090 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_stasis.c

index 47cca03..251c744 100644 (file)
@@ -735,7 +735,7 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
 
        RAII_VAR(struct stasis_app *, app, NULL, ao2_cleanup);
        RAII_VAR(struct stasis_app_control *, control, NULL, control_unlink);
-       struct ast_bridge *last_bridge = NULL;
+       struct ast_bridge *bridge = NULL;
        int res = 0;
 
        ast_assert(chan != NULL);
@@ -777,7 +777,7 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc,
                RAII_VAR(struct ast_frame *, f, NULL, ast_frame_dtor);
                int r;
                int command_count;
-               struct ast_bridge *bridge = NULL;
+               struct ast_bridge *last_bridge;
 
                /* Check to see if a bridge absorbed our hangup frame */
                if (ast_check_hangup_locked(chan)) {