diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-04-08 01:40:47 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-04-08 01:40:47 +0000 |
commit | ef4c6cccd966bdc301bd920de9bab9338d16e2a2 (patch) | |
tree | bfba7713fcfab4a01c9d62585cd3e27cef31502b /main/file.c | |
parent | 52502ee152be35747e2c65ea19765fd3ef618d91 (diff) |
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: http://svn.digium.com/svn/asterisk/branches/1.4@60661 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/file.c')
-rw-r--r-- | main/file.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/main/file.c b/main/file.c index c1346e5a1..242236f17 100644 --- a/main/file.c +++ b/main/file.c @@ -413,10 +413,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; } @@ -829,7 +834,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); @@ -945,7 +950,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; |