diff --git a/channel.c b/channel.c index 570aca7a623cae18e18bd610450d42637dc0b7bf..cf1c7a7dd109bc0b96d177479e6d45a71845144b 100755 --- a/channel.c +++ b/channel.c @@ -1492,9 +1492,11 @@ struct ast_channel *ast_request_and_dial(char *type, int format, void *data, int state = AST_CONTROL_RINGING; else if ((f->subclass == AST_CONTROL_BUSY) || (f->subclass == AST_CONTROL_CONGESTION)) { state = f->subclass; + ast_frfree(f); break; } else if (f->subclass == AST_CONTROL_ANSWER) { state = f->subclass; + ast_frfree(f); break; } else { ast_log(LOG_NOTICE, "Don't know what to do with control frame %d\n", f->subclass);