[freenet-cvs] r15463 - trunk/freenet/src/freenet/node

toad at freenetproject.org toad at freenetproject.org
Sat Oct 20 22:19:39 UTC 2007


Author: toad
Date: 2007-10-20 22:19:39 +0000 (Sat, 20 Oct 2007)
New Revision: 15463

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Prevent leak

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java	2007-10-20 20:15:49 UTC (rev 15462)
+++ trunk/freenet/src/freenet/node/PeerNode.java	2007-10-20 22:19:39 UTC (rev 15463)
@@ -1316,6 +1316,10 @@
     			this.detectedPeer=newPeer;
     			this.lastAttemptedHandshakeIPUpdateTime = 0;
     			if(!isConnected) return;
+    			// Prevent leak by clearing, *but keep the current handshake*
+    			Object o = jfkNoncesSent.get(newPeer);
+    			jfkNoncesSent.clear();
+    			jfkNoncesSent.put(newPeer, o);
     		} else return;
     	}
     	sendIPAddressMessage();
@@ -1817,6 +1821,9 @@
         if(!Arrays.equals(oldPeers, nominalPeer.toArray(new Peer[nominalPeer.size()]))) {
         	changedAnything = true;
         	lastAttemptedHandshakeIPUpdateTime = 0;
+        	// Clear nonces to prevent leak. Will kill any in-progress connect attempts, but that is okay because
+        	// either we got an ARK which changed our peers list, or we just connected.
+        	jfkNoncesSent.clear();
         }
         
         // DO NOT change detectedPeer !!!




More information about the cvs mailing list