]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Free some frames that would otherwise leak on error.
authorTilghman Lesher <tilghman@meg.abyt.es>
Sat, 24 Nov 2007 16:59:59 +0000 (16:59 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Sat, 24 Nov 2007 16:59:59 +0000 (16:59 +0000)
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

res/res_adsi.c

index 950e4f8651e211eadaba82fecf6e1faef8313b5e..38648a8d40547d7aaf4b281058a306ed5fb18865 100644 (file)
@@ -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;
                                        }
                                }