From 4d80f223af2c3b46b3c9417ed66a4439070ac580 Mon Sep 17 00:00:00 2001
From: Corey Farrell <git@cfware.com>
Date: Thu, 6 Nov 2014 12:15:54 +0000
Subject: [PATCH] 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
---
 main/file.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/main/file.c b/main/file.c
index 4221b0851d..e580d9c569 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;
-- 
GitLab