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:43:32 +0000 (13:43 -0500)
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 6027a80..6b4f26c 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;
 }