]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_ari_channels: Fix reference leak in channel_state_invalid.
authorCorey Farrell <git@cfware.com>
Tue, 31 Oct 2017 18:18:45 +0000 (14:18 -0400)
committerCorey Farrell <git@cfware.com>
Tue, 31 Oct 2017 18:41:29 +0000 (14:41 -0400)
channel_state_invalid leaked a reference to the channel snapshot any
time it was aquired.

ASTERISK-27067 #close

Change-Id: I8c653f00416b39978513c5605c4be0f03b1df29a

res/ari/resource_channels.c

index 6027a8059a9d80c56fe6168235d9f824fbc419d8..6b4f26c25a86bb86e69f6aae7d689339ff5eb07d 100644 (file)
@@ -99,9 +99,13 @@ static int channel_state_invalid(struct stasis_app_control *control,
                || snapshot->state == AST_STATE_RINGING) {
                ast_ari_response_error(response, 412, "Precondition Failed",
                        "Channel in invalid state");
+               ao2_ref(snapshot, -1);
+
                return -1;
        }
 
+       ao2_ref(snapshot, -1);
+
        return 0;
 }