From: Matt Joiner Date: Fri, 23 May 2025 04:40:49 +0000 (+1000) Subject: Fix data race on webseedRequest.next X-Git-Tag: v1.59.0~122 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=cf1257886436b5376be092974b446797247194b0;p=btrtrc.git Fix data race on webseedRequest.next --- 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)