Release B channel allocation on error path in chan_misdn.
authorRichard Mudgett <rmudgett@digium.com>
Mon, 30 Jul 2012 16:57:41 +0000 (16:57 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 30 Jul 2012 16:57:41 +0000 (16:57 +0000)
........

Merged revisions 370563 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370565 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c

index d00b594..8293961 100644 (file)
@@ -8007,6 +8007,7 @@ static struct ast_channel *misdn_request(const char *type, struct ast_format_cap
        /* create ast_channel and link all the objects together */
        cl = chan_list_init(ORG_AST);
        if (!cl) {
+               misdn_lib_release(newbc);
                ast_log(LOG_ERROR, "Could not create call record for Dial(%s)\n", dial_str);
                return NULL;
        }
@@ -8015,6 +8016,7 @@ static struct ast_channel *misdn_request(const char *type, struct ast_format_cap
        ast = misdn_new(cl, AST_STATE_RESERVED, args.ext, NULL, cap, requestor ? ast_channel_linkedid(requestor) : NULL, port, channel);
        if (!ast) {
                chan_list_unref(cl, "Failed to create a new channel");
+               misdn_lib_release(newbc);
                ast_log(LOG_ERROR, "Could not create Asterisk channel for Dial(%s)\n", dial_str);
                return NULL;
        }