From: Mostafa Solati Date: Mon, 2 Aug 2021 21:25:49 +0000 (+0430) Subject: cmd/go: do not ignore flags option with bad quoting X-Git-Tag: go1.19beta1~167 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=97ce98ac203e76fc1a1e902226277dc00456b41b;p=gostls13.git 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 Auto-Submit: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Michael Knyszek Run-TryBot: Bryan Mills --- diff --git a/src/cmd/go/internal/load/flag.go b/src/cmd/go/internal/load/flag.go index de079decdf..55bdab0135 100644 --- a/src/cmd/go/internal/load/flag.go +++ b/src/cmd/go/internal/load/flag.go @@ -59,6 +59,9 @@ func (f *PerPackageFlag) set(v, cwd string) error { if i == 0 { return fmt.Errorf("missing in =") } + 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 24ec5aa11b..0705277019 100644 --- a/src/cmd/go/testdata/script/gcflags_patterns.txt +++ b/src/cmd/go/testdata/script/gcflags_patterns.txt @@ -34,6 +34,10 @@ stderr 'compile.* -p z3.* -e ' ! 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'