channel: Fix crash in suppress API.

There exists an inconsistency with framehook usage
such that it is only on reads that the frame should
be freed, not on writes as well.

ASTERISK-29071

Change-Id: I5ef918ebe4debac8a469e8d43bf9d6b673e8e472
This commit is contained in:
Joshua C. Colp 2021-03-09 20:35:08 -04:00 committed by George Joseph
parent 59129bfab8
commit ceb8404667
1 changed files with 3 additions and 1 deletions

View File

@ -10845,7 +10845,9 @@ 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);
if (event == AST_FRAMEHOOK_EVENT_READ) {
ast_frfree(frame);
}
frame = &ast_null_frame;
break;
default: