From 339454370587c7257e177670fc57cd5b1a79d4e0 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 5 Jan 2022 19:22:24 +0000 Subject: [PATCH] Don't save arbitrary peer data if it's a local address --- .../org/qortal/data/network/ArbitraryPeerData.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java index 4185c390..30f8cf24 100644 --- a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java +++ b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java @@ -5,6 +5,9 @@ import org.qortal.crypto.Crypto; import org.qortal.network.Peer; import org.qortal.utils.NTP; +import java.net.InetAddress; +import java.net.UnknownHostException; + public class ArbitraryPeerData { private final byte[] hash; @@ -51,6 +54,17 @@ public class ArbitraryPeerData { return false; } + // Make sure that it's not a local address + try { + InetAddress addr = InetAddress.getByName(host); + if (addr.isLoopbackAddress() || addr.isLinkLocalAddress() || addr.isSiteLocalAddress()) { + // Ignore local addresses + return false; + } + } catch (UnknownHostException e) { + return false; + } + // Valid host/port combination return true; }