summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2007-04-08 01:42:32 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2007-04-08 01:42:32 +0000
commita7a0e8598c5dd146297957eaafdc9a1a0f67558d (patch)
tree3aaa04961b9eb5e8d317e6f7be95d8d6b4487f28
parent3c635cf6f1f9c65f670f14fe0c2ddcbff775225c (diff)
Merged revisions 60661 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r60661 | tilghman | 2007-04-07 20:40:47 -0500 (Sat, 07 Apr 2007) | 10 lines Merged revisions 60660 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r60660 | tilghman | 2007-04-07 20:39:25 -0500 (Sat, 07 Apr 2007) | 2 lines Bug 9486 - memory leak when opening a filestream ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60662 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/file.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/main/file.c b/main/file.c
index e85325892..d0be7688e 100644
--- a/main/file.c
+++ b/main/file.c
@@ -405,10 +405,15 @@ static int ast_filehelper(const char *filename, const void *arg2, const char *fm
s->fmt = f;
s->trans = NULL;
s->filename = NULL;
- if (s->fmt->format < AST_FORMAT_MAX_AUDIO)
+ if (s->fmt->format < AST_FORMAT_MAX_AUDIO) {
+ if (chan->stream)
+ ast_closestream(chan->stream);
chan->stream = s;
- else
+ } else {
+ if (chan->vstream)
+ ast_closestream(chan->vstream);
chan->vstream = s;
+ }
free(fn);
break;
}
@@ -820,7 +825,7 @@ struct ast_filestream *ast_readfile(const char *filename, const char *type, cons
open_wrapper(fs) ) {
ast_log(LOG_WARNING, "Unable to open %s\n", fn);
if (fs)
- free(fs);
+ ast_free(fs);
if (bfile)
fclose(bfile);
free(fn);
@@ -933,7 +938,7 @@ struct ast_filestream *ast_writefile(const char *filename, const char *type, con
unlink(orig_fn);
}
if (fs)
- free(fs);
+ ast_free(fs);
}
fs->trans = NULL;
fs->fmt = f;