Skip to content

Commit 052d7c8

Browse files
author
Bryan C. Mills
committed
[release-branch.go1.13] cmd/go/internal/get: avoid panic in metaImportsForPrefix if web.Get fails
Updates #29591 Updates #34049 Fixes #34081 Change-Id: I817b83ee2d0ca6d01ec64998f14bc4f32e365d66 Reviewed-on: https://go-review.googlesource.com/c/go/+/193259 Run-TryBot: Bryan C. Mills <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> (cherry picked from commit 1eab1aa6ba6c3f4d6f084751bca9a065707c3085) Reviewed-on: https://go-review.googlesource.com/c/go/+/193264 Reviewed-by: Jay Conrod <[email protected]>
1 parent 6bbfea9 commit 052d7c8

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/cmd/go/internal/get/vcs.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ func metaImportsForPrefix(importPrefix string, mod ModuleMode, security web.Secu
904904
}
905905
resp, err := web.Get(security, url)
906906
if err != nil {
907-
return setCache(fetchResult{url: url, err: fmt.Errorf("fetch %s: %v", resp.URL, err)})
907+
return setCache(fetchResult{url: url, err: fmt.Errorf("fetching %s: %v", importPrefix, err)})
908908
}
909909
body := resp.Body
910910
defer body.Close()
@@ -913,7 +913,7 @@ func metaImportsForPrefix(importPrefix string, mod ModuleMode, security web.Secu
913913
return setCache(fetchResult{url: url, err: fmt.Errorf("parsing %s: %v", resp.URL, err)})
914914
}
915915
if len(imports) == 0 {
916-
err = fmt.Errorf("fetch %s: no go-import meta tag", url)
916+
err = fmt.Errorf("fetching %s: no go-import meta tag found in %s", importPrefix, resp.URL)
917917
}
918918
return setCache(fetchResult{url: url, imports: imports, err: err})
919919
})

src/cmd/go/testdata/script/get_insecure_redirect.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
# golang.org/issue/29591: 'go get' was following plain-HTTP redirects even without -insecure.
2+
# golang.org/issue/34049: 'go get' would panic in case of an insecure redirect in GOPATH mode
23

34
[!net] skip
45
[!exec:git] skip
56

6-
env GO111MODULE=on
7-
env GOPROXY=direct
8-
env GOSUMDB=off
7+
env GO111MODULE=off
98

109
! go get -d vcs-test.golang.org/insecure/go/insecure
1110
stderr 'redirected .* to insecure URL'
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# golang.org/issue/29591: 'go get' was following plain-HTTP redirects even without -insecure.
2+
3+
[!net] skip
4+
[!exec:git] skip
5+
6+
env GO111MODULE=on
7+
env GOPROXY=direct
8+
env GOSUMDB=off
9+
10+
! go get -d vcs-test.golang.org/insecure/go/insecure
11+
stderr 'redirected .* to insecure URL'
12+
13+
go get -d -insecure vcs-test.golang.org/insecure/go/insecure

0 commit comments

Comments
 (0)