From c257794330db49f4079a7108d51da60696269b36 Mon Sep 17 00:00:00 2001 From: Ben Ford Date: Fri, 8 Nov 2019 13:21:15 -0600 Subject: [PATCH] res_pjsip_session.c: Check for port of zero on incoming SDP. If a re-invite comes in initiating T.38, but there is no c line in the SDP and the port is also 0, a crash can occur. A check is now done on the port to see if the steam is already declined, preventing the crash. The logic was moved to res_pjsip_session.c because it is handled in a similar manner in later versions of Asterisk. ASTERISK-28612 Reported by: Salah Ahmed Change-Id: Ifc4a0d05b32c7f2156e77fc8435a6ecaa6abada0 --- res/res_pjsip_session.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/res/res_pjsip_session.c b/res/res_pjsip_session.c index 81f36a7201..12cf41deb3 100644 --- a/res/res_pjsip_session.c +++ b/res/res_pjsip_session.c @@ -235,6 +235,13 @@ static int handle_incoming_sdp(struct ast_sip_session *session, const pjmedia_sd continue; } + /* If we have a port of 0, ignore this stream */ + if (!sdp->media[i]->desc.port) { + ast_debug(1, "Declining incoming SDP media stream '%s' at position '%d'\n", + session_media->stream_type, i); + continue; + } + if (session_media->handler) { handler = session_media->handler; ast_debug(1, "Negotiating incoming SDP media stream '%s' using %s SDP handler\n", -- 2.47.2