Author: toad
Date: 2007-10-20 17:26:41 +0000 (Sat, 20 Oct 2007)
New Revision: 15455

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
improve logging: this can happen on startup

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-10-20 
17:26:23 UTC (rev 15454)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-10-20 
17:26:41 UTC (rev 15455)
@@ -1363,6 +1363,13 @@

                // R
                int rLen = payload[count++] & 0xFF;
+               if(rLen > pn.getSigParamsByteLength()) {
+                       String msg = "R too long - changed key? Can happen on 
startup";
+                       if(node.getUptime() < 15*60*1000)
+                               Logger.minor(this, msg);
+                       else Logger.error(this, msg);
+                       return null;
+               }
                byte[] rBytes = new byte[rLen];
                System.arraycopy(payload, count, rBytes, 0, rLen);
                count += rLen;
@@ -1370,6 +1377,13 @@

                // S
                int sLen = payload[count++] & 0xFF;
+               if(rLen > pn.getSigParamsByteLength()) {
+                       String msg = "S too long - changed key? Can happen on 
startup";
+                       if(node.getUptime() < 15*60*1000)
+                               Logger.minor(this, msg);
+                       else Logger.error(this, msg);
+                       return null;
+               }
                byte[] sBytes = new byte[sLen];
                System.arraycopy(payload, count, sBytes, 0, sLen);
                count += sLen;

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-10-20 17:26:23 UTC (rev 
15454)
+++ trunk/freenet/src/freenet/node/Node.java    2007-10-20 17:26:41 UTC (rev 
15455)
@@ -2739,4 +2739,8 @@
                return set;
        }

+       public long getUptime() {
+               return System.currentTimeMillis() - usm.getStartedTime();
+       }
+
 }

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2007-10-20 17:26:23 UTC 
(rev 15454)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2007-10-20 17:26:41 UTC 
(rev 15455)
@@ -2780,4 +2780,10 @@
        protected void setJFKBuffer(byte[] bufferJFK) {
                this.jfkBuffer = bufferJFK;
        }
+
+       public int getSigParamsByteLength() {
+               int bitLen = this.peerCryptoGroup.getQ().bitLength();
+               int byteLen = bitLen / 8 + (bitLen % 8 != 0 ? 1 : 0);
+               return byteLen;
+       }
 }


Reply via email to