From 79051439c5fcd01f6724431682d2ee26d6e3aa3f Mon Sep 17 00:00:00 2001 From: akwizgran Date: Sat, 5 Mar 2022 13:54:48 +0000 Subject: [PATCH] Catch NPE thrown by NetworkInterface.getNetworkInterfaces(). --- .../briarproject/bramble/util/NetworkUtils.java | 2 +- .../system/AbstractSecureRandomProvider.java | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/bramble-api/src/main/java/org/briarproject/bramble/util/NetworkUtils.java b/bramble-api/src/main/java/org/briarproject/bramble/util/NetworkUtils.java index d2ad5ef88..f6a4cdc83 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/util/NetworkUtils.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/util/NetworkUtils.java @@ -26,7 +26,7 @@ public class NetworkUtils { // Despite what the docs say, the return value can be null //noinspection ConstantConditions return ifaces == null ? emptyList() : list(ifaces); - } catch (SocketException e) { + } catch (SocketException | NullPointerException e) { logException(LOG, WARNING, e); return emptyList(); } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/system/AbstractSecureRandomProvider.java b/bramble-core/src/main/java/org/briarproject/bramble/system/AbstractSecureRandomProvider.java index d7691ea73..66b7df159 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/system/AbstractSecureRandomProvider.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/system/AbstractSecureRandomProvider.java @@ -7,14 +7,13 @@ import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.NetworkInterface; -import java.util.Enumeration; import java.util.Map.Entry; import java.util.Properties; import javax.annotation.concurrent.Immutable; -import static java.net.NetworkInterface.getNetworkInterfaces; import static java.util.Collections.list; +import static org.briarproject.bramble.util.NetworkUtils.getNetworkInterfaces; @Immutable @NotNullByDefault @@ -25,14 +24,11 @@ abstract class AbstractSecureRandomProvider implements SecureRandomProvider { out.writeLong(System.currentTimeMillis()); out.writeLong(System.nanoTime()); out.writeLong(Runtime.getRuntime().freeMemory()); - Enumeration ifaces = getNetworkInterfaces(); - if (ifaces != null) { - for (NetworkInterface i : list(ifaces)) { - for (InetAddress a : list(i.getInetAddresses())) - out.write(a.getAddress()); - byte[] hardware = i.getHardwareAddress(); - if (hardware != null) out.write(hardware); - } + for (NetworkInterface i : getNetworkInterfaces()) { + for (InetAddress a : list(i.getInetAddresses())) + out.write(a.getAddress()); + byte[] hardware = i.getHardwareAddress(); + if (hardware != null) out.write(hardware); } for (Entry e : System.getenv().entrySet()) { out.writeUTF(e.getKey());