From: Tilghman Lesher Date: Sat, 24 Nov 2007 16:59:59 +0000 (+0000) Subject: Free some frames that would otherwise leak on error. X-Git-Tag: 1.4.16.1~123 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7808fb44f1cd37951d1076798b3a86b881cb0598;p=thirdparty%2Fasterisk.git Free some frames that would otherwise leak on error. Reported by: Laureano Patch by: Laureano,tilghman (Closes issue #11351) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@89545 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_adsi.c b/res/res_adsi.c index 950e4f8651..38648a8d40 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; } }