diff options
-rw-r--r-- | main/channel.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c index 0b4d154bf..110486d57 100644 --- a/main/channel.c +++ b/main/channel.c @@ -1742,14 +1742,19 @@ int __ast_answer(struct ast_channel *chan, unsigned int delay, int cdr_answer) } f = ast_read(chan); if (!f || (f->frametype == AST_FRAME_CONTROL && f->subclass == AST_CONTROL_HANGUP)) { + if (f) { + ast_frfree(f); + } res = -1; ast_debug(2, "Hangup of channel %s detected in answer routine\n", chan->name); break; } if (f->frametype == AST_FRAME_VOICE) { + ast_frfree(f); res = 0; break; } + ast_frfree(f); } } break; |