aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorOleksandr Redko <oleksandr.red+github@gmail.com>2026-02-06 20:52:22 +0200
committerGopher Robot <gobot@golang.org>2026-02-12 10:43:05 -0800
commita44ed023f600de1b8fbeb2be514ec20c964b3330 (patch)
treeaa921975be7868fccd345e735ee0c408e1cfc221 /src/cmd
parent31768104cbe710d2358d5da34b4c223ad3ff2c6f (diff)
downloadgo-a44ed023f600de1b8fbeb2be514ec20c964b3330.tar.xz
cmd/go: fix panic in 'go run -C'
Fixes #77483 Change-Id: Ie772ce1619beadc1a6db87aaf28a8d9c31f7d1b8 Reviewed-on: https://go-review.googlesource.com/c/go/+/742860 Reviewed-by: Junyang Shao <shaojunyang@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Alexander <jitsu@google.com> Reviewed-by: Sean Liao <sean@liao.dev> Reviewed-by: Ian Alexander <jitsu@google.com> Auto-Submit: Sean Liao <sean@liao.dev>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/go/internal/toolchain/select.go3
-rw-r--r--src/cmd/go/testdata/script/mod_run_flags_issue77483.txt4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/cmd/go/internal/toolchain/select.go b/src/cmd/go/internal/toolchain/select.go
index 0cb93f67e1..e7a9af793c 100644
--- a/src/cmd/go/internal/toolchain/select.go
+++ b/src/cmd/go/internal/toolchain/select.go
@@ -658,6 +658,9 @@ func maybeSwitchForGoInstallVersion(loaderstate *modload.State, minVers string)
}
if bf, ok := f.Value.(interface{ IsBoolFlag() bool }); !ok || !bf.IsBoolFlag() {
+ if len(args) == 0 {
+ return
+ }
// The next arg is the value for this flag. Skip it.
args = args[1:]
continue
diff --git a/src/cmd/go/testdata/script/mod_run_flags_issue77483.txt b/src/cmd/go/testdata/script/mod_run_flags_issue77483.txt
new file mode 100644
index 0000000000..9a5d367349
--- /dev/null
+++ b/src/cmd/go/testdata/script/mod_run_flags_issue77483.txt
@@ -0,0 +1,4 @@
+# Regression test for https://go.dev/issue/77483: 'go run -C' should not panic.
+
+! go run -C
+stderr 'flag needs an argument: -C'