[asterisk-commits] mjordan: branch certified-1.8.15 r397761 - in /certified/branches/1.8.15: ./ ...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Aug 27 13:13:24 CDT 2013
Author: mjordan
Date: Tue Aug 27 13:13:22 2013
New Revision: 397761
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397761
Log:
AST-2013-005: Fix crash caused by invalid SDP
If the SIP channel driver processes an invalid SDP that defines media
descriptions before connection information, it may attempt to reference
the socket address information even though that information has not yet
been set. This will cause a crash.
This patch adds checks when handling the various media descriptions that
ensures the media descriptions are handled only if we have connection
information suitable for that media.
Thanks to Walter Doekes, OSSO B.V., for reporting, testing, and providing
the solution to this problem.
(closes issue ASTERISK-22007)
Reported by: wdoekes
Tested by: wdoekes
patches:
issueA22007_sdp_without_c_death.patch uploaded by wdoekes (License 5674)
........
Merged revisions 397756 from http://svn.asterisk.org/svn/asterisk/branches/1.8
Modified:
certified/branches/1.8.15/ (props changed)
certified/branches/1.8.15/channels/chan_sip.c
Propchange: certified/branches/1.8.15/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: certified/branches/1.8.15/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/certified/branches/1.8.15/channels/chan_sip.c?view=diff&rev=397761&r1=397760&r2=397761
==============================================================================
--- certified/branches/1.8.15/channels/chan_sip.c (original)
+++ certified/branches/1.8.15/channels/chan_sip.c Tue Aug 27 13:13:22 2013
@@ -9419,7 +9419,7 @@
/* Setup audio address and port */
if (p->rtp) {
- if (portno > 0) {
+ if (sa && portno > 0) {
ast_sockaddr_set_port(sa, portno);
ast_rtp_instance_set_remote_address(p->rtp, sa);
if (debug) {
@@ -9466,7 +9466,7 @@
/* Setup video address and port */
if (p->vrtp) {
- if (vportno > 0) {
+ if (vsa && vportno > 0) {
ast_sockaddr_set_port(vsa, vportno);
ast_rtp_instance_set_remote_address(p->vrtp, vsa);
if (debug) {
@@ -9483,7 +9483,7 @@
/* Setup text address and port */
if (p->trtp) {
- if (tportno > 0) {
+ if (tsa && tportno > 0) {
ast_sockaddr_set_port(tsa, tportno);
ast_rtp_instance_set_remote_address(p->trtp, tsa);
if (debug) {
@@ -9506,7 +9506,7 @@
/* Setup image address and port */
if (p->udptl) {
- if (udptlportno > 0) {
+ if (isa && udptlportno > 0) {
if (ast_test_flag(&p->flags[1], SIP_PAGE2_SYMMETRICRTP) && ast_test_flag(&p->flags[1], SIP_PAGE2_UDPTL_DESTINATION)) {
ast_rtp_instance_get_remote_address(p->rtp, isa);
if (!ast_sockaddr_isnull(isa) && debug) {
More information about the asterisk-commits
mailing list