From cf1257886436b5376be092974b446797247194b0 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 23 May 2025 14:40:49 +1000 Subject: [PATCH] Fix data race on webseedRequest.next --- webseed-peer.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webseed-peer.go b/webseed-peer.go index ccb2fee3..89e7bf6c 100644 --- a/webseed-peer.go +++ b/webseed-peer.go @@ -278,7 +278,7 @@ func (ws *webseedPeer) readChunks(wr *webseedRequest) (err error) { t := ws.peer.t buf := t.getChunkBuffer() defer t.putChunkBuffer(buf) - for ; wr.next < wr.end; wr.next++ { + for wr.next < wr.end { reqSpec := t.requestIndexToRequest(wr.next) chunkLen := reqSpec.Length.Int() buf = buf[:chunkLen] @@ -297,6 +297,7 @@ func (ws *webseedPeer) readChunks(wr *webseedRequest) (err error) { Index: reqSpec.Index, Begin: reqSpec.Begin, }) + wr.next++ ws.peer.locker().Unlock() if err != nil { err = fmt.Errorf("processing chunk: %w", err) -- 2.51.0