diff -r c619a34cb99b -r 8161f879d704 jdk/src/share/classes/java/net/MulticastSocket.java --- a/jdk/src/share/classes/java/net/MulticastSocket.java Tue Dec 01 08:55:15 2009 -0800 +++ b/jdk/src/share/classes/java/net/MulticastSocket.java Wed Dec 02 12:17:42 2009 +0000 @@ -289,6 +289,7 @@ throw new SocketException("Socket is closed"); } + checkAddress(mcastaddr, "joinGroup"); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkMulticast(mcastaddr); @@ -323,6 +324,7 @@ throw new SocketException("Socket is closed"); } + checkAddress(mcastaddr, "leaveGroup"); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkMulticast(mcastaddr); @@ -370,6 +372,7 @@ if (oldImpl) throw new UnsupportedOperationException(); + checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "joinGroup"); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress()); @@ -416,6 +419,7 @@ if (oldImpl) throw new UnsupportedOperationException(); + checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "leaveGroup"); SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress()); @@ -441,6 +445,7 @@ if (isClosed()) { throw new SocketException("Socket is closed"); } + checkAddress(inf, "setInterface"); synchronized (infLock) { getImpl().setOption(SocketOptions.IP_MULTICAST_IF, inf); infAddress = inf; @@ -632,6 +637,7 @@ throws IOException { if (isClosed()) throw new SocketException("Socket is closed"); + checkAddress(p.getAddress(), "send"); synchronized(ttlLock) { synchronized(p) { if (connectState == ST_NOT_CONNECTED) {