From 9cb0ad96df9a9c4e01a4635951de4c6ae50762c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=
 <rafael.carre@savoirfairelinux.com>
Date: Tue, 9 Aug 2011 15:10:40 -0400
Subject: [PATCH] sip registration callback: fix a dbus crash

makes sure the string allocated doesn't go out of scope while the dbus call
---
 sflphone-common/src/sip/sipvoiplink.cpp | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 5e5d05ba50..8001baf75d 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3674,13 +3674,9 @@ void registration_cb (struct pjsip_regc_cbparam *param)
     const pj_str_t * description = pjsip_get_status_text (param->code);
 
     if (param->code && description) {
-
-        //std::string descriptionprint(description->ptr, description->slen);
-        //_debug("Received client registration callback wiht code: %i, %s\n", param->code, descriptionprint.c_str());
-        DBusManager::instance().getCallManager()->registrationStateChanged (account->getAccountID(), std::string (description->ptr, description->slen), param->code);
-        std::pair<int, std::string> details (param->code, std::string (description->ptr, description->slen));
-
-
+        std::string state(description->ptr, description->slen);
+        DBusManager::instance().getCallManager()->registrationStateChanged (account->getAccountID(), state, param->code);
+        std::pair<int, std::string> details (param->code, state);
         // TODO: there id a race condition for this ressource when closing the application
         account->setRegistrationStateDetailed (details);
     }
-- 
GitLab