[go] load: fix ldflags invalid parameters

123 views
Skip to first unread message

Gopher Robot (Gerrit)

unread,
May 19, 2022, 4:20:48 PM5/19/22
to Mostafa Solati, goph...@pubsubhelper.golang.org, golang-...@googlegroups.com, Michael Knyszek, Bryan Mills, Ian Lance Taylor, Than McIntosh, Michael Matloob, Russ Cox

Gopher Robot submitted this change.

View Change


Approvals: Bryan Mills: Looks good to me, approved; Run TryBots; Automatically submit change Michael Knyszek: Looks good to me, but someone else must approve Gopher Robot: TryBots succeeded
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.

Gerrit-Project: go
Gerrit-Branch: master
Gerrit-Change-Id: I7d8ef8dee0dcade3cc88fc6423e23f41d1f8ffb2
Gerrit-Change-Number: 339289
Gerrit-PatchSet: 20
Gerrit-Owner: Mostafa Solati <mostafa...@gmail.com>
Gerrit-Reviewer: Bryan Mills <bcm...@google.com>
Gerrit-Reviewer: Gopher Robot <go...@golang.org>
Gerrit-Reviewer: Ian Lance Taylor <ia...@golang.org>
Gerrit-Reviewer: Michael Knyszek <mkny...@google.com>
Gerrit-Reviewer: Michael Matloob <mat...@golang.org>
Gerrit-Reviewer: Than McIntosh <th...@google.com>
Gerrit-CC: Russ Cox <r...@golang.org>
Gerrit-MessageType: merged
Reply all
Reply to author
Forward
0 new messages