From 7638d678a877d72b3b8d8f870d0d0331ed0d7d87 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Sat, 2 Apr 2016 16:57:22 +1100 Subject: [PATCH] storage: Fix io.EOF on short piece files --- storage/piece_file.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/storage/piece_file.go b/storage/piece_file.go index 82dfbdcf..c9fc3c21 100644 --- a/storage/piece_file.go +++ b/storage/piece_file.go @@ -72,7 +72,12 @@ func (me pieceFileTorrentStoragePiece) ReadAt(b []byte, off int64) (n int, err e } } defer f.Close() - return f.ReadAt(b, off) + n, err = f.ReadAt(b, off) + off += int64(n) + if err == io.EOF && off < me.p.Length() { + err = io.ErrUnexpectedEOF + } + return } func (me pieceFileTorrentStoragePiece) WriteAt(b []byte, off int64) (n int, err error) { -- 2.48.1