From: Jay Conrod Date: Mon, 30 Nov 2020 20:46:33 +0000 (-0500) Subject: cmd/go: fix infinite loop in modload.keepSums X-Git-Tag: go1.16beta1~140 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d2b436d95d;p=gostls13.git cmd/go: fix infinite loop in modload.keepSums Fixes #42891 Change-Id: I0cce4204a1c4959b896188a2ab3719c0507f95e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/274172 Run-TryBot: Jay Conrod TryBot-Result: Go Bot Reviewed-by: Michael Matloob Reviewed-by: Bryan C. Mills Trust: Jay Conrod --- diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index a9b77c82b3..1c31a5f90a 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -1018,7 +1018,7 @@ func keepSums(addDirect bool) map[module.Version]bool { } } for _, pkg := range loaded.pkgs { - if pkg.testOf != nil || pkg.inStd { + if pkg.testOf != nil || pkg.inStd || module.CheckImportPath(pkg.path) != nil { continue } for prefix := pkg.path; prefix != "."; prefix = path.Dir(prefix) { diff --git a/src/cmd/go/testdata/script/mod_import_issue42891.txt b/src/cmd/go/testdata/script/mod_import_issue42891.txt new file mode 100644 index 0000000000..a78cab29ba --- /dev/null +++ b/src/cmd/go/testdata/script/mod_import_issue42891.txt @@ -0,0 +1,14 @@ +# If an import declaration is an absolute path, most commands should report +# an error instead of going into an infinite loop. +# Verifies golang.org/issue/42891. +go list . +stdout '^m$' + +-- go.mod -- +module m + +go 1.16 +-- m.go -- +package m + +import "/"