From e3a74331549a3857c2cbfe092064218509b4945a Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Sun, 3 Apr 2016 16:37:50 +1000 Subject: [PATCH] piece file storage: Don't write to completed pieces --- storage/piece_file.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/storage/piece_file.go b/storage/piece_file.go index 95b2af0b..5656eedd 100644 --- a/storage/piece_file.go +++ b/storage/piece_file.go @@ -1,6 +1,7 @@ package storage import ( + "errors" "io" "os" "path" @@ -96,6 +97,10 @@ func (me pieceFileTorrentStoragePiece) ReadAt(b []byte, off int64) (n int, err e } func (me pieceFileTorrentStoragePiece) WriteAt(b []byte, off int64) (n int, err error) { + if me.GetIsComplete() { + err = errors.New("piece completed") + return + } f, err := me.fs.OpenFile(me.incompletePath(), os.O_WRONLY|os.O_CREATE) if err != nil { return -- 2.48.1