From: cui fliter Date: Thu, 8 Sep 2022 09:26:37 +0000 (+0000) Subject: net/http: convert allowQuerySemicolonsInUse to atomic type X-Git-Tag: go1.20rc1~1082 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b244b89d560051f8d4c4c2b90680477ec05f76c3;p=gostls13.git net/http: convert allowQuerySemicolonsInUse to atomic type For #53821 Change-Id: I135783bd5472011f6a74d2f5ee34ce96ff49ad2b GitHub-Last-Rev: 4da2d67ff3d19424c306e1de6a4152fc93785a97 GitHub-Pull-Request: golang/go#54863 Reviewed-on: https://go-review.googlesource.com/c/go/+/428336 TryBot-Result: Gopher Robot Reviewed-by: Damien Neil Run-TryBot: Bryan Mills Reviewed-by: Bryan Mills --- diff --git a/src/net/http/server.go b/src/net/http/server.go index 3d427e5ae4..d96283ccc4 100644 --- a/src/net/http/server.go +++ b/src/net/http/server.go @@ -2905,12 +2905,12 @@ func (sh serverHandler) ServeHTTP(rw ResponseWriter, req *Request) { } if req.URL != nil && strings.Contains(req.URL.RawQuery, ";") { - var allowQuerySemicolonsInUse int32 + var allowQuerySemicolonsInUse atomic.Bool req = req.WithContext(context.WithValue(req.Context(), silenceSemWarnContextKey, func() { - atomic.StoreInt32(&allowQuerySemicolonsInUse, 1) + allowQuerySemicolonsInUse.Store(true) })) defer func() { - if atomic.LoadInt32(&allowQuerySemicolonsInUse) == 0 { + if !allowQuerySemicolonsInUse.Load() { sh.srv.logf("http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192") } }()