From 8bc0599b110e40a5d021be3a4834649c98160d39 Mon Sep 17 00:00:00 2001
From: Olle Johansson <oej@edvina.net>
Date: Mon, 5 Jun 2006 07:43:40 +0000
Subject: [PATCH] Issue 7208 - Handle ; in userinfo part of URI too

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@32207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index f36d3abd4f..6ed605b8a4 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7142,16 +7142,16 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
 			return -1;
 		}
 		from += 4;
-		from = strsep(&from, ";");
 		if ((a = strchr(from, '@')))
 			*a++ = '\0';
 		else
 			a = from;	/* just a domain */
+		from = strsep(&from, ";");	/* Remove userinfo options */
+		a = strsep(&a, ";");		/* Remove URI options */
 		ast_string_field_set(p, fromdomain, a);
 	}
 
 	/* Skip any options and find the domain */
-	uri = strsep(&uri, ";");
 
 	/* Get the target domain */
 	if ((a = strchr(uri, '@'))) {
@@ -7164,6 +7164,9 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq)
 	if (colon)
 		*colon = '\0';
 
+	uri = strsep(&uri, ";");	/* Remove userinfo options */
+	a = strsep(&a, ";");		/* Remove URI options */
+
 	ast_string_field_set(p, domain, a);
 
 	if (!AST_LIST_EMPTY(&domain_list)) {
-- 
GitLab