From edfc8cfdc4e8923537d90f8e51b72293ecd7380a Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 1 Jan 2022 22:34:02 +0000 Subject: [PATCH] Fixed bug which saved an incorrect peer address for a forwarded arbitrary signatures message. --- .../org/qortal/controller/arbitrary/ArbitraryDataManager.java | 2 +- src/main/java/org/qortal/data/network/ArbitraryPeerData.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java index 7d169bbf..b6f5672e 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java @@ -395,7 +395,7 @@ public class ArbitraryDataManager extends Thread { if (existingEntry == null) { // We haven't got a record of this mapping yet, so add it LOGGER.debug("Adding arbitrary peer: {} for signature {}", peerAddress, Base58.encode(signature)); - ArbitraryPeerData arbitraryPeerData = new ArbitraryPeerData(signature, peer); + ArbitraryPeerData arbitraryPeerData = new ArbitraryPeerData(signature, peerAddress); repository.discardChanges(); if (!arbitraryPeerData.isPeerAddressValid()) { return; diff --git a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java index 2ec7b430..4185c390 100644 --- a/src/main/java/org/qortal/data/network/ArbitraryPeerData.java +++ b/src/main/java/org/qortal/data/network/ArbitraryPeerData.java @@ -29,6 +29,10 @@ public class ArbitraryPeerData { 0, 0, 0L, 0L); } + public ArbitraryPeerData(byte[] signature, String peerAddress) { + this(Crypto.digest(signature), peerAddress, 0, 0, 0L, 0L); + } + public boolean isPeerAddressValid() { // Validate the peer address to prevent arbitrary values being added to the db String[] parts = this.peerAddress.split(":");