2005-12-26 Complication

* Fix some integer typecasting in I2PSnark (caused >2GB torrents to fail)
    * HTML readability cosmetics on "Peers" page
This commit is contained in:
complication
2005-12-27 04:20:29 +00:00
committed by zzz
parent dc0485b526
commit 9b7e5d1817
5 changed files with 18 additions and 9 deletions

View File

@ -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];

View File

@ -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...