From ef005a20c82918f8849fdfacb1ae3fdb8fdbe0c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=
 <rafael.carre@savoirfairelinux.com>
Date: Thu, 25 Aug 2011 17:45:10 -0400
Subject: [PATCH] sipvoiplink : don't crash on transfers

---
 daemon/src/sip/sipvoiplink.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/daemon/src/sip/sipvoiplink.cpp b/daemon/src/sip/sipvoiplink.cpp
index 931198c3e8..9171e779af 100644
--- a/daemon/src/sip/sipvoiplink.cpp
+++ b/daemon/src/sip/sipvoiplink.cpp
@@ -3339,7 +3339,6 @@ void transfer_client_cb (pjsip_evsub *sub, pjsip_event *event)
         /*
          * On incoming NOTIFY, notify application about call transfer progress.
          */
-        pjsip_status_line status_line;
 
         _debug("UserAgent: PJSIP_EVSUB_STATE_ACTIVE PJSIP_EVSUB_STATE_TERMINATED");
 
@@ -3355,15 +3354,16 @@ void transfer_client_cb (pjsip_evsub *sub, pjsip_event *event)
         }
 
         /* Application is not interested with call progress status */
-        if (!link or !event) {
-            _warn ("UserAgent: Either link or event is empty in transfer callback");
+        if (!link or !event)
             return;
-        }
-
 
         pjsip_rx_data* r_data = event->body.rx_msg.rdata;
+        if (!r_data)
+        	return;
         std::string request =  pjsip_rx_data_get_info (r_data);
 
+        pjsip_status_line status_line;
+
         /* This better be a NOTIFY request */
         if (r_data->msg_info.msg->line.req.method.id == PJSIP_OTHER_METHOD and
                 request.find ("NOTIFY") != std::string::npos) {
-- 
GitLab