summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2014-11-06 12:13:56 +0000
committerCorey Farrell <git@cfware.com>2014-11-06 12:13:56 +0000
commitf2d43e7e075d1be198cc4931fc9a9d454a07376b (patch)
treec662181795151054651efd030aa33ffe33598878 /main
parent1c255e711e6ccb0cf51bf6be7113d803ff8c5365 (diff)
main/file.c: fix possible extra ast_module_unref to format modules.
fn_wrapper only adds a reference to the format's module if the file was able to be opened. If not this causes an unmatched ast_module_unref in filestream_destructor. Move ast_module_ref to get_stream. ASTERISK-24492 #close Reported by: Corey Farrell Review: https://reviewboard.asterisk.org/r/4149/ ........ Merged revisions 427464 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 427465 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@427466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/file.c b/main/file.c
index 1d3755ac2..37930fdcb 100644
--- a/main/file.c
+++ b/main/file.c
@@ -435,6 +435,7 @@ static struct ast_filestream *get_filestream(struct ast_format_def *fmt, FILE *b
int l = sizeof(*s) + fmt->buf_size + fmt->desc_size; /* total allocation size */
if ( (s = ao2_alloc(l, filestream_destructor)) == NULL)
return NULL;
+ ast_module_ref(fmt->module);
s->fmt = fmt;
s->f = bfile;
@@ -472,8 +473,7 @@ static int fn_wrapper(struct ast_filestream *s, const char *comment, enum wrap_f
else if (mode == WRAP_REWRITE && f->rewrite && f->rewrite(s, comment))
ast_log(LOG_WARNING, "Unable to rewrite format %s\n", f->name);
else {
- /* preliminary checks succeed. update usecount */
- ast_module_ref(f->module);
+ /* preliminary checks succeed. */
ret = 0;
}
return ret;