fix hashing errors in large files

pull/4/head
Zlatin Balevsky 2019-06-05 00:34:38 +01:00
parent 9df28552ad
commit 1eb930435b
1 changed files with 2 additions and 2 deletions

View File

@ -52,11 +52,11 @@ class FileHasher {
try { try {
MappedByteBuffer buf MappedByteBuffer buf
for (int i = 0; i < numPieces - 1; i++) { for (int i = 0; i < numPieces - 1; i++) {
buf = raf.getChannel().map(MapMode.READ_ONLY, size * i, size) buf = raf.getChannel().map(MapMode.READ_ONLY, ((long)size) * i, size)
digest.update buf digest.update buf
output.write(digest.digest(), 0, 32) output.write(digest.digest(), 0, 32)
} }
def lastPieceLength = length - (numPieces - 1) * size def lastPieceLength = length - (numPieces - 1) * ((long)size)
buf = raf.getChannel().map(MapMode.READ_ONLY, length - lastPieceLength, lastPieceLength) buf = raf.getChannel().map(MapMode.READ_ONLY, length - lastPieceLength, lastPieceLength)
digest.update buf digest.update buf
output.write(digest.digest(), 0, 32) output.write(digest.digest(), 0, 32)