aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/res_adsi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/res/res_adsi.c b/res/res_adsi.c
index 950e4f865..38648a8d4 100644
--- a/res/res_adsi.c
+++ b/res/res_adsi.c
@@ -168,6 +168,7 @@ static int adsi_careful_send(struct ast_channel *chan, unsigned char *buf, int l
/* Read a voice frame */
if (inf->subclass != AST_FORMAT_ULAW) {
ast_log(LOG_WARNING, "Channel not in ulaw?\n");
+ ast_frfree(inf);
return -1;
}
/* Send no more than they sent us */
@@ -182,6 +183,7 @@ static int adsi_careful_send(struct ast_channel *chan, unsigned char *buf, int l
outf.samples = amt;
if (ast_write(chan, &outf)) {
ast_log(LOG_WARNING, "Failed to carefully write frame\n");
+ ast_frfree(inf);
return -1;
}
/* Update pointers and lengths */
@@ -256,6 +258,7 @@ static int __adsi_transmit_messages(struct ast_channel *chan, unsigned char **ms
if (!chan->adsicpe)
chan->adsicpe = AST_ADSI_UNAVAILABLE;
errno = ENOSYS;
+ ast_frfree(f);
return -1;
}
}