res_fax: Fix reference leak in fax_v21_session_new.
authorCorey Farrell <git@cfware.com>
Wed, 22 Jun 2016 20:04:54 +0000 (16:04 -0400)
committerCorey Farrell <git@cfware.com>
Wed, 22 Jun 2016 20:11:57 +0000 (15:11 -0500)
fax_v21_session_new created a session details object but only released
the allocation reference during error conditions.  fax_session_new adds
it's own reference to details if needed so the caller is always
responsible for cleaning it's own reference.

ASTERISK-26141 #close

Change-Id: Ie7fc52a83b6596ce9ce2d5a2bd9f3e204f48fc88

res/res_fax.c

index c8ff1e9..347168e 100644 (file)
@@ -2846,11 +2846,8 @@ static struct ast_fax_session *fax_v21_session_new (struct ast_channel *chan) {
        }
 
        v21_details->caps = AST_FAX_TECH_V21_DETECT;
-       if (!(v21_session = fax_session_new(v21_details, chan, NULL, NULL))) {
-               ao2_ref(v21_details, -1);
-               return NULL;
-       }
-
+       v21_session = fax_session_new(v21_details, chan, NULL, NULL);
+       ao2_ref(v21_details, -1);
        return v21_session;
 }