]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: don't try to print build info of non-Go binaries
authorAlberto Donizetti <alb.donizetti@gmail.com>
Wed, 27 Oct 2021 15:37:09 +0000 (17:37 +0200)
committerAlberto Donizetti <alb.donizetti@gmail.com>
Tue, 16 Nov 2021 08:58:05 +0000 (08:58 +0000)
On a non-nil err, buildinfo.ReadFile will always return a nil
*Buildinfo. In scanFile, we need to return early if that happens.

Fixes #49181

Change-Id: I354348d206ab084804937c6f922eadb61435e7b5
Reviewed-on: https://go-review.googlesource.com/c/go/+/359154
Trust: Alberto Donizetti <alb.donizetti@gmail.com>
Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
src/cmd/go/internal/version/version.go
src/cmd/go/testdata/script/go_version.txt [new file with mode: 0644]

index febc7c638ae9ed33f61d09022570af2eb80faecf..52502e95c6d673eed8ec1b1a203ba9b9b55bd268 100644 (file)
@@ -151,6 +151,7 @@ func scanFile(file string, info fs.FileInfo, mustPrint bool) {
                                fmt.Fprintf(os.Stderr, "%s: %v\n", file, err)
                        }
                }
+               return
        }
 
        fmt.Printf("%s: %s\n", file, bi.GoVersion)
diff --git a/src/cmd/go/testdata/script/go_version.txt b/src/cmd/go/testdata/script/go_version.txt
new file mode 100644 (file)
index 0000000..1a787e1
--- /dev/null
@@ -0,0 +1,9 @@
+# test that go version doesn't panic on non-go binaries\r
+# See Issue #49181\r
+\r
+[exec:/bin/true] cp /bin/true true\r
+[exec:C:\windows\system32\help.exe] cp C:\windows\system32\help.exe help.exe\r
+\r
+go version -m .\r
+! stdout .\r
+! stderr .\r