From 9e68716e0e147d9708a804dd954def5b40542f52 Mon Sep 17 00:00:00 2001
From: Mark Spencer <markster@digium.com>
Date: Wed, 1 Oct 2003 04:53:53 +0000
Subject: [PATCH] Check registry carefully before unlinking

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

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 0ac22f96e8..03df2dda6b 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -889,7 +889,14 @@ static void __sip_destroy(struct sip_pvt *p, int lockowner)
 		p->route = NULL;
 	}
 	if (p->registry) {
-		p->registry->call=NULL;
+		/* Carefully unlink from registry */
+		struct sip_registry *reg;
+		reg = registrations;
+		while(reg) {
+			if ((reg == p->registry) && (p->registry->call == p))
+				p->registry->call=NULL;
+			reg = reg->next;
+		}
 	}
 	/* Unlink us from the owner if we have one */
 	if (p->owner) {
-- 
GitLab