From da39835bf48cc0a2e1d04cff8d486ce5bd0f9548 Mon Sep 17 00:00:00 2001
From: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
Date: Thu, 3 Nov 2016 16:31:09 -0400
Subject: [PATCH] prevent a crash if im::sendSipMessage fails

im::sendSipMessage() may throw an exception but caller
doesn't take that into account. This may cause undefined behaviour,
like a crash on some platforms.

This patch encapsulates the im::sendSipMessage() call into a try/catch.

Change-Id: Ie07105f02d64a37a009e510bb674716ec20212c9
Tuleap: #1172
---
 src/sip/sipcall.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index 5ff8403627..6c62d60698 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -671,7 +671,9 @@ SIPCall::sendTextMessage(const std::map<std::string, std::string>& messages,
             c->sendTextMessage(messages, from);
     } else {
         if (inv) {
-            im::sendSipMessage(inv.get(), messages);
+            try {
+                im::sendSipMessage(inv.get(), messages);
+            } catch (...) {}
         } else {
             pendingOutMessages_.emplace_back(messages, from);
             RING_ERR("[call:%s] sendTextMessage: no invite session for this call", getCallId().c_str());
-- 
GitLab