From 8e6e4d94599bf9dda4a0228f7e8e15b8f28e8e30 Mon Sep 17 00:00:00 2001 From: Werner Dittmann Date: Mon, 28 Dec 2009 11:40:05 +0000 Subject: [PATCH] Stop SDP processing if the media port is zero. This protects better against malformed SDP media description lines. --- .../protocol/sip/CallPeerMediaHandler.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandler.java b/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandler.java index d2805480d..afbc87b7a 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandler.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/CallPeerMediaHandler.java @@ -1299,7 +1299,15 @@ private void processAnswer(SessionDescription answer) for ( MediaDescription mediaDescription : remoteDescriptions) { MediaType mediaType = SdpUtils.getMediaType(mediaDescription); - + //stream target + MediaStreamTarget target + = SdpUtils.extractDefaultTarget(mediaDescription, answer); + // not target port - try next media description + if(target.getDataAddress().getPort() == 0) + { + closeStream(mediaType); + continue; + } List supportedFormats = SdpUtils.extractFormats( mediaDescription, dynamicPayloadTypes); @@ -1325,21 +1333,9 @@ private void processAnswer(SessionDescription answer) MediaDirection direction = devDirection.getDirectionForAnswer(remoteDirection); - //stream target - MediaStreamTarget target - = SdpUtils.extractDefaultTarget(mediaDescription, answer); - // create the corresponding stream... - if(target.getDataAddress().getPort() != 0) - { - initStream(connector, dev, supportedFormats.get(0), target, + initStream(connector, dev, supportedFormats.get(0), target, direction); - } - else - // or destroy it in case the target port was 0. - { - closeStream(mediaType); - } } }