From 0dac9e9b9c40a80ea6cdb319aaf9da1b405e6b85 Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
Date: Wed, 25 Apr 2012 16:36:12 -0400
Subject: [PATCH] * #9969: SIP: initialize body earlier

---
 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 1e57c6f352..9d117a8926 100644
--- a/daemon/src/sip/sipvoiplink.cpp
+++ b/daemon/src/sip/sipvoiplink.cpp
@@ -192,13 +192,14 @@ pj_bool_t transaction_request_cb(pjsip_rx_data *rdata)
 
     std::string displayName(sip_utils::parseDisplayName(rdata->msg_info.msg_buf));
 
+    pjsip_msg_body *body = rdata->msg_info.msg->body;
     if (method->id == PJSIP_OTHER_METHOD) {
         pj_str_t *str = &method->name;
         std::string request(str->ptr, str->slen);
 
         if (request.find("NOTIFY") != std::string::npos) {
-            if (rdata->msg_info.msg->body) {
-                void *data = rdata->msg_info.msg->body->data;
+            if (body) {
+                void *data = body->data;
                 if (data) {
                     int voicemail = 0;
                     int ret = sscanf((const char*) data, "Voice-Message: %d/", &voicemail);
@@ -221,7 +222,6 @@ pj_bool_t transaction_request_cb(pjsip_rx_data *rdata)
     SIPAccount *account = dynamic_cast<SIPAccount *>(Manager::instance().getAccount(account_id));
 
     pjmedia_sdp_session *r_sdp;
-    pjsip_msg_body *body = rdata->msg_info.msg->body;
 
     if (!body || pjmedia_sdp_parse(rdata->tp_info.pool, (char*) body->data, body->len, &r_sdp) != PJ_SUCCESS)
         r_sdp = NULL;
@@ -277,9 +277,9 @@ pj_bool_t transaction_request_cb(pjsip_rx_data *rdata)
     call->getAudioRtp().initConfig();
     call->getAudioRtp().initSession();
 
-    if (rdata->msg_info.msg->body) {
+    if (body) {
         char sdpbuffer[1000];
-        int len = rdata->msg_info.msg->body->print_body(rdata->msg_info.msg->body, sdpbuffer, sizeof sdpbuffer);
+        int len = rdata->msg_info.msg->body->print_body(body, sdpbuffer, sizeof sdpbuffer);
 
         if (len == -1) // error
             len = 0;
-- 
GitLab