[Asterisk-code-review] chan_sip: Handle invalid SDP answer to T.38 re-invite (...asterisk[master])
Friendly Automation
asteriskteam at digium.com
Thu Jul 11 11:19:47 CDT 2019
Hello Francesco Castellano,
I'd like you to do a code review. Please visit
https://gerrit.asterisk.org/c/asterisk/+/11541
to review the following change.
Change subject: chan_sip: Handle invalid SDP answer to T.38 re-invite
......................................................................
chan_sip: Handle invalid SDP answer to T.38 re-invite
The chan_sip module performs a T.38 re-invite using a single media
stream of udptl, and expects the SDP answer to be the same.
If an SDP answer is received instead that contains an additional
media stream with no joint codec a crash will occur as the code
assumes that at least one joint codec will exist in this
scenario.
This change removes this assumption.
ASTERISK-28465
Change-Id: I8b02845b53344c6babe867a3f0a5231045c7ac87
---
M channels/chan_sip.c
1 file changed, 7 insertions(+), 1 deletion(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/41/11541/1
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index cd0db38..6dfe86a 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -10965,7 +10965,13 @@
ast_rtp_lookup_mime_multiple2(s3, NULL, newnoncodeccapability, 0, 0));
}
- if (portno != -1 || vportno != -1 || tportno != -1) {
+ /* When UDPTL is negotiated it is expected that there are no compatible codecs as audio or
+ * video is not being transported, thus we continue in this function further up if that is
+ * the case. If we receive an SDP answer containing both a UDPTL stream and another media
+ * stream however we need to check again to ensure that there is at least one joint codec
+ * instead of assuming there is one.
+ */
+ if ((portno != -1 || vportno != -1 || tportno != -1) && ast_format_cap_count(newjointcapability)) {
/* We are now ready to change the sip session and RTP structures with the offered codecs, since
they are acceptable */
unsigned int framing;
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/11541
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Change-Id: I8b02845b53344c6babe867a3f0a5231045c7ac87
Gerrit-Change-Number: 11541
Gerrit-PatchSet: 1
Gerrit-Owner: Friendly Automation
Gerrit-Reviewer: Francesco Castellano <francesco.castellano at messagenet.it>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190711/6ab154ee/attachment.html>
More information about the asterisk-code-review
mailing list