From 85fbbf89807007eadc144d5f7afdc6966545e31d Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Wed, 22 Aug 2012 17:40:25 +0000
Subject: [PATCH]  * NetDB: Add hash collision detection

---
 .../networkdb/kademlia/KademliaNetworkDatabaseFacade.java | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index 2e83c238ec..3da3b819b6 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -676,6 +676,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
             throw new IllegalArgumentException("Attempt to replace RI with " + leaseSet);
         }
         
+        // spoof / hash collision detection
+        if (rv != null && !leaseSet.getDestination().equals(rv.getDestination()))
+            throw new IllegalArgumentException("LS Hash collision");
+
         String err = validate(key, leaseSet);
         if (err != null)
             throw new IllegalArgumentException("Invalid store attempt - " + err);
@@ -815,6 +819,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
             throw new IllegalArgumentException("Attempt to replace LS with " + routerInfo);
         }
         
+        // spoof / hash collision detection
+        if (rv != null && !routerInfo.getIdentity().equals(rv.getIdentity()))
+            throw new IllegalArgumentException("RI Hash collision");
+
         String err = validate(key, routerInfo);
         if (err != null)
             throw new IllegalArgumentException("Invalid store attempt - " + err);
-- 
GitLab