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
13.30
Ben Ford 6 years ago committed by Gerrit
parent bb732e4292
commit c257794330

@ -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",

Loading…
Cancel
Save