summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java7
-rw-r--r--ojluni/src/main/java/java/net/NetworkInterface.java21
2 files changed, 20 insertions, 8 deletions
diff --git a/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java b/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
index 99723619cb..d809eab9ad 100644
--- a/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
+++ b/luni/src/test/java/libcore/java/net/NetworkInterfaceTest.java
@@ -25,6 +25,7 @@ import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
+import java.net.MulticastSocket;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Collections;
@@ -232,4 +233,10 @@ public class NetworkInterfaceTest extends TestCase {
private static boolean isEthernet(String ifName) throws Exception {
return ethernetNamePattern.matcher(ifName).matches();
}
+
+ public void testGetInterfaceAddressesDoesNotThrowNPE() throws Exception {
+ try (MulticastSocket mcastSock = new MulticastSocket()) {
+ mcastSock.getNetworkInterface().getInterfaceAddresses();
+ }
+ }
}
diff --git a/ojluni/src/main/java/java/net/NetworkInterface.java b/ojluni/src/main/java/java/net/NetworkInterface.java
index c157eca8fe..2547673c3d 100644
--- a/ojluni/src/main/java/java/net/NetworkInterface.java
+++ b/ojluni/src/main/java/java/net/NetworkInterface.java
@@ -175,15 +175,20 @@ public final class NetworkInterface {
*/
public java.util.List<InterfaceAddress> getInterfaceAddresses() {
java.util.List<InterfaceAddress> lst = new java.util.ArrayList<InterfaceAddress>(1);
- SecurityManager sec = System.getSecurityManager();
- for (int j=0; j<bindings.length; j++) {
- try {
- if (sec != null) {
- sec.checkConnect(bindings[j].getAddress().getHostAddress(), -1);
- }
- lst.add(bindings[j]);
- } catch (SecurityException e) { }
+ // BEGIN Android-changed: Cherry-picked upstream OpenJDK9 change rev 59a110a38cea
+ // http://b/30628919
+ if (bindings != null) {
+ SecurityManager sec = System.getSecurityManager();
+ for (int j=0; j<bindings.length; j++) {
+ try {
+ if (sec != null) {
+ sec.checkConnect(bindings[j].getAddress().getHostAddress(), -1);
+ }
+ lst.add(bindings[j]);
+ } catch (SecurityException e) { }
+ }
}
+ // END Android-changed: Cherry-picked upstream OpenJDK9 change rev 59a110a38cea
return lst;
}