diff --git a/apps/sbc/SBCCallLeg.cpp b/apps/sbc/SBCCallLeg.cpp index 324aebfd..bd6ff323 100644 --- a/apps/sbc/SBCCallLeg.cpp +++ b/apps/sbc/SBCCallLeg.cpp @@ -1869,7 +1869,13 @@ void SBCCallLeg::createHoldRequest(AmSdp &sdp) // version number in every SDP passing through?) AmMimeBody *s = dlg->established_body.hasContentType(SIP_APPLICATION_SDP); - if (s) sdp.parse((const char*)s->getPayload()); + if (s) { + if (sdp.parse((const char*)s->getPayload())) + { + ILOG_DLG(L_WARN, "Failed to parse SDP.\n"); + return; + } + } if (sdp.media.empty()) { // established SDP is not valid! generate complete fake diff --git a/core/AmB2BSession.cpp b/core/AmB2BSession.cpp index 0be58372..e38573fb 100644 --- a/core/AmB2BSession.cpp +++ b/core/AmB2BSession.cpp @@ -291,7 +291,11 @@ void AmB2BSession::addFakeSDPbasedOnPort(const AmMimeBody *src_sdp, AmMimeBody & /* create fake AmSdp from AmMimeBody */ AmSdp fake_sdp; AmMimeBody fake_mimebody; - fake_sdp.parse((const char *)src_sdp->getPayload()); + if (fake_sdp.parse((const char *)src_sdp->getPayload())) + { + ILOG_DLG(L_WARN, "Failed to parse SDP.\n"); + return; + } for (auto it = fake_sdp.media.begin(); it != fake_sdp.media.end(); ++it) { @@ -337,8 +341,13 @@ void AmB2BSession::acceptPendingInvite(AmSipRequest *invite, const AmMimeBody *s /* port must reflect actual port in SDP offer coming in */ if (sdp) { AmSdp fake_sdp; - fake_sdp.parse((const char *)sdp->getPayload()); - desired_port = getMediaPort(fake_sdp); + if (fake_sdp.parse((const char *)sdp->getPayload())) + { + ILOG_DLG(L_WARN, "Failed to parse SDP.\n"); + } + else { + desired_port = getMediaPort(fake_sdp); + } } if (desired_port) {