From 83ff030e4f0123501eff0d0731f78a0f33eaa7e0 Mon Sep 17 00:00:00 2001 From: Jin Dong Date: Wed, 28 Jun 2023 16:34:13 +0000 Subject: [PATCH] Change http.Header copy to builtin Clone Signed-off-by: Jin Dong --- remotes/docker/resolver.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/remotes/docker/resolver.go b/remotes/docker/resolver.go index fca43baab97c..96110a1887f5 100644 --- a/remotes/docker/resolver.go +++ b/remotes/docker/resolver.go @@ -152,7 +152,6 @@ func NewResolver(options ResolverOptions) remotes.Resolver { // make a copy of the headers to avoid race due to concurrent map write options.Headers = options.Headers.Clone() } - if _, ok := options.Headers["User-Agent"]; !ok { options.Headers.Set("User-Agent", "containerd/"+version.Version) } @@ -547,9 +546,10 @@ func (r *request) do(ctx context.Context) (*http.Response, error) { if err != nil { return nil, err } - req.Header = http.Header{} // headers need to be copied to avoid concurrent map access - for k, v := range r.header { - req.Header[k] = v + if r.header == nil { + req.Header = http.Header{} + } else { + req.Header = r.header.Clone() // headers need to be copied to avoid concurrent map access } if r.body != nil { body, err := r.body()