diff -r 5c4f1b7c753b -r 96c7427456f9 src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java --- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java Thu Jun 13 12:22:28 2019 +0530 +++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java Thu Jun 13 09:10:51 2019 +0100 @@ -57,6 +57,7 @@ import sun.net.ResourceManager; import sun.net.ext.ExtendedSocketOptions; +import sun.net.util.IPAddressUtil; /** * An implementation of DatagramChannels. @@ -527,14 +528,16 @@ } else { // not connected SecurityManager sm = System.getSecurityManager(); + InetAddress ia = isa.getAddress(); if (sm != null) { - InetAddress ia = isa.getAddress(); if (ia.isMulticastAddress()) { sm.checkMulticast(ia); } else { sm.checkConnect(ia.getHostAddress(), isa.getPort()); } } + if (ia.isLinkLocalAddress()) + isa = IPAddressUtil.toScopedAddress(isa); n = send(fd, src, isa); if (blocking) { while (IOStatus.okayToRetry(n) && isOpen()) {