From 1bd88c387e3e90f5a3231d136dda6dd019501a61 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Wed, 6 Jul 2005 01:45:23 +0000 Subject: [PATCH] don't segfault when peer doesn't send Referred-By (bug #4588) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6038 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 6b4e40d21c..a5091e73e1 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5909,9 +5909,11 @@ static int get_refer_info(struct sip_pvt *sip_pvt, struct sip_request *outgoing_ referred_by = NULL; } - refer_to += 4; - referred_by += 4; - + if (refer_to) + refer_to += 4; + + if (referred_by) + referred_by += 4; if ((ptr = strchr(refer_to, '?'))) { /* Search for arguments */ @@ -5982,7 +5984,8 @@ static int get_refer_info(struct sip_pvt *sip_pvt, struct sip_request *outgoing_ ast_log(LOG_DEBUG,"Transferred by (Referred-by: ) %s \n", referred_by); ast_log(LOG_DEBUG,"Transfer Contact Info %s (REFER_CONTACT)\n", h_contact); ast_copy_string(sip_pvt->refer_to, refer_to, sizeof(sip_pvt->refer_to)); - ast_copy_string(sip_pvt->referred_by, referred_by, sizeof(sip_pvt->referred_by)); + if (referred_by) + ast_copy_string(sip_pvt->referred_by, referred_by, sizeof(sip_pvt->referred_by)); if (h_contact) { ast_copy_string(sip_pvt->refer_contact, h_contact, sizeof(sip_pvt->refer_contact)); }