From 9b7e5d1817ab839065f15552555a83923b3c43c9 Mon Sep 17 00:00:00 2001 From: complication Date: Tue, 27 Dec 2005 04:20:29 +0000 Subject: [PATCH] 2005-12-26 Complication * Fix some integer typecasting in I2PSnark (caused >2GB torrents to fail) * HTML readability cosmetics on "Peers" page --- apps/i2psnark/java/src/org/klomp/snark/Storage.java | 12 ++++++++---- .../src/org/klomp/snark/web/I2PSnarkServlet.java | 3 ++- history.txt | 6 +++++- router/java/src/net/i2p/router/RouterVersion.java | 4 ++-- .../net/i2p/router/transport/udp/UDPTransport.java | 2 +- 5 files changed, 18 insertions(+), 9 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/Storage.java b/apps/i2psnark/java/src/org/klomp/snark/Storage.java index b9eb7914b..1ce0d552c 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Storage.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Storage.java @@ -39,8 +39,8 @@ public class Storage private final StorageListener listener; - private final BitField bitfield; - private int needed; + private final BitField bitfield; // BitField to represent the pieces + private int needed; // Number of pieces needed // XXX - Not always set correctly int piece_size; @@ -506,7 +506,8 @@ public class Storage } } - long start = piece * metainfo.getPieceLength(0); + // Early typecast, avoid possibly overflowing a temp integer + long start = (long) piece * (long) metainfo.getPieceLength(0); int i = 0; long raflen = lengths[i]; while (start > raflen) @@ -549,7 +550,10 @@ public class Storage throws IOException { // XXX - copy/paste code from putPiece(). - long start = piece * metainfo.getPieceLength(0); + + // Early typecast, avoid possibly overflowing a temp integer + long start = (long) piece * (long) metainfo.getPieceLength(0); + int length = metainfo.getPieceLength(piece); int i = 0; long raflen = lengths[i]; diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 5f690fc69..6f2920131 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -333,7 +333,8 @@ public class I2PSnarkServlet extends HttpServlet { if (filename.length() > MAX_DISPLAYED_FILENAME_LENGTH) filename = filename.substring(0, MAX_DISPLAYED_FILENAME_LENGTH) + "..."; long total = snark.meta.getTotalLength(); - long remaining = snark.storage.needed() * snark.meta.getPieceLength(0); + // Early typecast, avoid possibly overflowing a temp integer + long remaining = (long) snark.storage.needed() * (long) snark.meta.getPieceLength(0); if (remaining > total) remaining = total; int totalBps = 4096; // should probably grab this from the snark... diff --git a/history.txt b/history.txt index 19a869c6e..c4d92b929 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,8 @@ -$Id: history.txt,v 1.368 2005/12/22 05:10:39 jrandom Exp $ +$Id: history.txt,v 1.369 2005/12/22 07:49:09 jrandom Exp $ + +2005-12-26 Complication + * Fix some integer typecasting in I2PSnark (caused >2GB torrents to fail) + * HTML readability cosmetics on "Peers" page * 2005-12-22 0.6.1.8 released diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 9f85db93e..f26fa5a75 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.316 $ $Date: 2005/12/22 05:04:13 $"; + public final static String ID = "$Revision: 1.317 $ $Date: 2005/12/22 07:49:09 $"; public final static String VERSION = "0.6.1.8"; - public final static long BUILD = 0; + public final static long BUILD = 1; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index 184e5a33c..1b09bfafe 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -1161,7 +1161,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority buf.append(dupRecv); //formatPct(recvDupPct)); buf.append(""); - buf.append(""); + buf.append("\n"); out.write(buf.toString()); buf.setLength(0);