diff options
author | Corey Farrell <git@cfware.com> | 2014-11-06 12:15:54 +0000 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2014-11-06 12:15:54 +0000 |
commit | 4d80f223af2c3b46b3c9417ed66a4439070ac580 (patch) | |
tree | 28a13ae09fe1cef65ce28914b8a89dd3a7b01887 /main/file.c | |
parent | c46664305ad5c84b6c24ccb7665327abe7349638 (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
........
Merged revisions 427466 from http://svn.asterisk.org/svn/asterisk/branches/13
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@427467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/file.c')
-rw-r--r-- | main/file.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/main/file.c b/main/file.c index 4221b0851..e580d9c56 100644 --- a/main/file.c +++ b/main/file.c @@ -430,6 +430,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; @@ -467,8 +468,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; |