From: Matt Joiner Date: Sat, 2 Apr 2016 05:57:22 +0000 (+1100) Subject: storage: Fix io.EOF on short piece files X-Git-Tag: v1.0.0~804 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7638d678a877d72b3b8d8f870d0d0331ed0d7d87;p=btrtrc.git storage: Fix io.EOF on short piece files --- 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) {