From 00d8fae66bee2715d2a516ddd12187b6dbb0cadd Mon Sep 17 00:00:00 2001
From: Richard Mudgett <rmudgett@digium.com>
Date: Mon, 30 Jul 2012 16:57:41 +0000
Subject: [PATCH] Release B channel allocation on error path in chan_misdn.
 ........

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 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index d00b594fbb..82939614a6 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -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;
 	}
-- 
GitLab