From 157ce90abe24e7ff8ac51b05660eb7190101138c Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 20 Oct 2016 10:06:54 -0400 Subject: [PATCH] go/build: allow % in ${SRCDIR} expansion for Jenkins Fixes #16959. Change-Id: Ibbb28fdf26c53788a0edb3e3ea54ec030fa2a8cf Reviewed-on: https://go-review.googlesource.com/31611 Run-TryBot: Russ Cox TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/go/build/build.go | 3 ++- src/go/build/build_test.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/go/build/build.go b/src/go/build/build.go index bd89e3188fb..e26ab48aa4a 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -1294,7 +1294,8 @@ func expandSrcDir(str string, srcdir string) (string, bool) { // We never pass these arguments to a shell (just to programs we construct argv for), so this should be okay. // See golang.org/issue/6038. // The @ is for OS X. See golang.org/issue/13720. -const safeString = "+-.,/0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz:$@" +// The % is for Jenkins. See golang.org/issue/16959. +const safeString = "+-.,/0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz:$@%" const safeSpaces = " " var safeBytes = []byte(safeSpaces + safeString) diff --git a/src/go/build/build_test.go b/src/go/build/build_test.go index 0a20af01bd7..8ca8e5e04d4 100644 --- a/src/go/build/build_test.go +++ b/src/go/build/build_test.go @@ -294,6 +294,7 @@ func TestShellSafety(t *testing.T) { result bool }{ {"-I${SRCDIR}/../include", "/projects/src/issue 11868", "-I/projects/src/issue 11868/../include", true}, + {"-I${SRCDIR}", "wtf$@%", "-Iwtf$@%", true}, {"-X${SRCDIR}/1,${SRCDIR}/2", "/projects/src/issue 11868", "-X/projects/src/issue 11868/1,/projects/src/issue 11868/2", true}, {"-I/tmp -I/tmp", "/tmp2", "-I/tmp -I/tmp", false}, {"-I/tmp", "/tmp/[0]", "-I/tmp", true},