]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
channel: Fix memory leak in suppress API.
authorJoshua C. Colp <jcolp@sangoma.com>
Wed, 3 Mar 2021 13:32:22 +0000 (09:32 -0400)
committerJoshua Colp <jcolp@sangoma.com>
Wed, 3 Mar 2021 13:37:04 +0000 (07:37 -0600)
A frame suppression API exists as part of channels
which allows audio frames to or from a channel to
be dropped. The MuteAudio AMI action uses this
API to perform its job.

This API uses a framehook to intercept flowing
audio and drop it when appropriate. It is the
responsibility of the framehook to free the
frame it is given if it changes the frame. The
suppression API failed to do this resulting in
a leak of audio frames.

This change adds the freeing of these frames.

ASTERISK-29071

Change-Id: Ie50acd454d672d36af914050c327d2e120d8ba7b

main/channel.c

index 8fb0a8f75a4933d3ca36bdb7cd9066da3d8a5ac8..2a0815ea39b38c0d6125490d2001e0d36e087fee 100644 (file)
@@ -10800,6 +10800,7 @@ static struct ast_frame *suppress_framehook_event_cb(struct ast_channel *chan, s
        if (suppress_frame) {
                switch (frame->frametype) {
                case AST_FRAME_VOICE:
+                       ast_frfree(frame);
                        frame = &ast_null_frame;
                        break;
                default: