diff options
Diffstat (limited to 'user/gitlab-runner/posix-shell-escape.patch')
-rw-r--r-- | user/gitlab-runner/posix-shell-escape.patch | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/user/gitlab-runner/posix-shell-escape.patch b/user/gitlab-runner/posix-shell-escape.patch deleted file mode 100644 index b454141ed..000000000 --- a/user/gitlab-runner/posix-shell-escape.patch +++ /dev/null @@ -1,139 +0,0 @@ ---- gitlab-runner-v12.1.0/helpers/shell_escape.go 2019-07-19 12:13:32.000000000 +0000 -+++ gitlab-runner-v12.1.0/helpers/shell_escape.go 2020-04-26 23:12:59.813309281 +0000 -@@ -4,7 +4,6 @@ package helpers - - import ( - "bytes" -- "encoding/hex" - "strings" - ) - -@@ -13,35 +12,10 @@ import ( - */ - - const ( -- ACK = 6 -- TAB = 9 -- LF = 10 -- CR = 13 -- US = 31 -- SPACE = 32 -- AMPERSTAND = 38 - SINGLE_QUOTE = 39 -- PLUS = 43 -- NINE = 57 -- QUESTION = 63 -- LOWERCASE_Z = 90 -- OPEN_BRACKET = 91 - BACKSLASH = 92 -- UNDERSCORE = 95 -- CLOSE_BRACKET = 93 -- BACKTICK = 96 -- TILDA = 126 -- DEL = 127 - ) - --// ShellEscape is taken from https://github.com/solidsnack/shell-escape/blob/master/Text/ShellEscape/Bash.hs --/* --A Bash escaped string. The strings are wrapped in @$\'...\'@ if any --bytes within them must be escaped; otherwise, they are left as is. --Newlines and other control characters are represented as ANSI escape --sequences. High bytes are represented as hex codes. Thus Bash escaped --strings will always fit on one line and never contain non-ASCII bytes. --*/ - func ShellEscape(str string) string { - if str == "" { - return "''" -@@ -50,85 +24,20 @@ func ShellEscape(str string) string { - out := bytes.NewBuffer(make([]byte, 0, len(str)*2)) - i := 0 - l := len(in) -- escape := false -- -- hex := func(char byte) { -- escape = true -- -- data := []byte{BACKSLASH, 'x', 0, 0} -- hex.Encode(data[2:], []byte{char}) -- out.Write(data) -- } -- -- backslash := func(char byte) { -- escape = true -- out.Write([]byte{BACKSLASH, char}) -- } -- -- escaped := func(str string) { -- escape = true -- out.WriteString(str) -- } -- -- quoted := func(char byte) { -- escape = true -- out.WriteByte(char) -- } -- -- literal := func(char byte) { -- out.WriteByte(char) -- } - -+ out.WriteByte(SINGLE_QUOTE) - for i < l { - char := in[i] -- switch { -- case char == TAB: -- escaped(`\t`) -- case char == LF: -- escaped(`\n`) -- case char == CR: -- escaped(`\r`) -- case char <= US: -- hex(char) -- case char <= AMPERSTAND: -- quoted(char) -- case char == SINGLE_QUOTE: -- backslash(char) -- case char <= PLUS: -- quoted(char) -- case char <= NINE: -- literal(char) -- case char <= QUESTION: -- quoted(char) -- case char <= LOWERCASE_Z: -- literal(char) -- case char == OPEN_BRACKET: -- quoted(char) -- case char == BACKSLASH: -- backslash(char) -- case char <= CLOSE_BRACKET: -- quoted(char) -- case char == UNDERSCORE: -- literal(char) -- case char <= BACKTICK: -- quoted(char) -- case char <= TILDA: -- quoted(char) -- case char == DEL: -- hex(char) -- default: -- hex(char) -+ if (char == SINGLE_QUOTE) { -+ out.Write([]byte{SINGLE_QUOTE, BACKSLASH, SINGLE_QUOTE, SINGLE_QUOTE}) -+ } else { -+ out.WriteByte(char) - } - i++ - } -+ out.WriteByte(SINGLE_QUOTE) - -- outStr := out.String() -- -- if escape { -- outStr = "$'" + outStr + "'" -- } -- -- return outStr -+ return out.String() - } - - func ToBackslash(path string) string { |