Only deref a reserved gateway session if we actually reserved one

Its perfectly acceptable to have a gateway session unreserved when we go to
first allocate one.  Unreffing the reserved gateway session - when its NULL -
will result in an assertion error.

This problem was caught by the Asterisk Test Suite (once we had enough of the
debugging flags enabled)
........

Merged revisions 375797 from http://svn.asterisk.org/svn/asterisk/branches/10
........

Merged revisions 375798 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@375799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Matthew Jordan
2012-11-04 02:44:35 +00:00
parent 4bd66cb96b
commit 069f5f8b93

View File

@@ -2583,7 +2583,9 @@ static int fax_gateway_start(struct fax_gateway *gateway, struct ast_fax_session
}
/* release the reference for the reserved session and replace it with
* the real session */
ao2_ref(gateway->s, -1);
if (gateway->s) {
ao2_ref(gateway->s, -1);
}
gateway->s = s;
gateway->token = NULL;