Author: toad
Date: 2008-02-04 16:23:18 +0000 (Mon, 04 Feb 2008)
New Revision: 17506
Modified:
trunk/freenet/src/freenet/node/NodeDispatcher.java
trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
Log:
Reject probe requests with invalid targets.
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-02-04 14:32:22 UTC
(rev 17505)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-02-04 16:23:18 UTC
(rev 17506)
@@ -379,7 +379,18 @@
}
return true;
}
- ResettingHTLProbeRequestHandler.start(m, source, node);
+ double target = m.getDouble(DMT.TARGET_LOCATION);
+ if(target > 1.0 || target < 0.0) {
+ Logger.normal(this, "Rejecting invalid
(target="+target+") probe request from "+source.getPeer());
+ Message rejected = DMT.createFNPRejectedOverload(id,
true);
+ try {
+ source.sendAsync(rejected, null, 0, null);
+ } catch (NotConnectedException e) {
+ Logger.normal(this, "Rejecting (invalid) insert
request from "+source.getPeer()+": "+e);
+ }
+ return true;
+ }
+ ResettingHTLProbeRequestHandler.start(m, source, node, target);
return true;
}
Modified: trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
2008-02-04 14:32:22 UTC (rev 17505)
+++ trunk/freenet/src/freenet/node/ResettingHTLProbeRequestHandler.java
2008-02-04 16:23:18 UTC (rev 17506)
@@ -26,9 +26,8 @@
this.sender = sender;
}
- static void start(Message m, PeerNode source, Node n) {
+ static void start(Message m, PeerNode source, Node n, double target) {
long uid = m.getLong(DMT.UID);
- double target = m.getDouble(DMT.TARGET_LOCATION);
double nearestLoc = m.getDouble(DMT.NEAREST_LOCATION);
double best = m.getDouble(DMT.BEST_LOCATION);
short htl = m.getShort(DMT.HTL);