aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/channel.c5
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;