Gopher Robot submitted this change.
cmd/go: do not ignore flags option with bad quoting
Fixes #43177
Change-Id: I7d8ef8dee0dcade3cc88fc6423e23f41d1f8ffb2
Reviewed-on: https://go-review.googlesource.com/c/go/+/339289
Reviewed-by: Bryan Mills <bcm...@google.com>
Auto-Submit: Bryan Mills <bcm...@google.com>
TryBot-Result: Gopher Robot <go...@golang.org>
Reviewed-by: Michael Knyszek <mkny...@google.com>
Run-TryBot: Bryan Mills <bcm...@google.com>
---
M src/cmd/go/internal/load/flag.go
M src/cmd/go/testdata/script/gcflags_patterns.txt
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/src/cmd/go/internal/load/flag.go b/src/cmd/go/internal/load/flag.go
index de079de..55bdab0 100644
--- a/src/cmd/go/internal/load/flag.go
+++ b/src/cmd/go/internal/load/flag.go
@@ -59,6 +59,9 @@
if i == 0 {
return fmt.Errorf("missing <pattern> in <pattern>=<value>")
}
+ if v[0] == '\'' || v[0] == '"' {
+ return fmt.Errorf("parameter may not start with quote character %c", v[0])
+ }
pattern := strings.TrimSpace(v[:i])
match = MatchPackage(pattern, cwd)
v = v[i+1:]
diff --git a/src/cmd/go/testdata/script/gcflags_patterns.txt b/src/cmd/go/testdata/script/gcflags_patterns.txt
index 24ec5aa..0705277 100644
--- a/src/cmd/go/testdata/script/gcflags_patterns.txt
+++ b/src/cmd/go/testdata/script/gcflags_patterns.txt
@@ -34,6 +34,10 @@
! go build -gcflags=-d=ssa/ z1
stderr 'PhaseOptions usage'
+# check for valid -ldflags parameter
+! go build '-ldflags="-X main.X=Hello"'
+stderr 'invalid value'
+
# -ldflags for implicit test package applies to test binary
go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1
stderr 'compile.* -N .*z_test.go'
To view, visit change 339289. To unsubscribe, or for help writing mail filters, visit settings.