From cce37f8d32176d0bdf8bb56f590f418b98ff2d00 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Mon, 26 Apr 2004 11:38:21 +0000
Subject: [PATCH] Hold call structure longer iwth find_callno

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2771 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_iax2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 624d9ef620..30ebb5e302 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -814,7 +814,6 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
 			return -1;
 		}
 		iaxs[x] = new_iax(sin, lockpeer);
-		ast_mutex_unlock(&iaxsl[x]);
 		update_max_nontrunk();
 		if (iaxs[x]) {
 			if (option_debug)
@@ -833,8 +832,10 @@ static int find_callno(unsigned short callno, unsigned short dcallno, struct soc
 			strncpy(iaxs[x]->accountcode, accountcode, sizeof(iaxs[x]->accountcode)-1);
 		} else {
 			ast_log(LOG_WARNING, "Out of resources\n");
+			ast_mutex_unlock(&iaxsl[x]);
 			return 0;
 		}
+		ast_mutex_unlock(&iaxsl[x]);
 		res = x;
 	}
 	return res;
-- 
GitLab