summaryrefslogtreecommitdiff
path: root/internal/command/commandargs
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2021-09-27 19:28:06 +0100
committerNick Thomas <nick@gitlab.com>2021-09-27 20:25:10 +0100
commit5564ea9ca23217687a6e6c091f3b4fc11e375a2f (patch)
treeb58611c4552934ae0412092622b8af20326a7c0f /internal/command/commandargs
parenta1ae9e5ad2900d512a58ce64f4ad0f02769c3edd (diff)
downloadgitlab-shell-5564ea9ca23217687a6e6c091f3b4fc11e375a2f.tar.gz
Don't swallow an error parsing SSH_ORIGINAL_COMMAND
Diffstat (limited to 'internal/command/commandargs')
-rw-r--r--internal/command/commandargs/shell.go13
1 files changed, 4 insertions, 9 deletions
diff --git a/internal/command/commandargs/shell.go b/internal/command/commandargs/shell.go
index 589f58d..7a76be5 100644
--- a/internal/command/commandargs/shell.go
+++ b/internal/command/commandargs/shell.go
@@ -1,7 +1,7 @@
package commandargs
import (
- "errors"
+ "fmt"
"regexp"
"github.com/mattn/go-shellwords"
@@ -49,21 +49,16 @@ func (s *Shell) GetArguments() []string {
func (s *Shell) validate() error {
if !s.Env.IsSSHConnection {
- return errors.New("Only SSH allowed")
+ return fmt.Errorf("Only SSH allowed")
}
- if !s.isValidSSHCommand() {
- return errors.New("Invalid SSH command")
+ if err := s.ParseCommand(s.Env.OriginalCommand); err != nil {
+ return fmt.Errorf("Invalid SSH command: %w", err)
}
return nil
}
-func (s *Shell) isValidSSHCommand() bool {
- err := s.ParseCommand(s.Env.OriginalCommand)
- return err == nil
-}
-
func (s *Shell) parseWho() {
for _, argument := range s.Arguments {
if keyId := tryParseKeyId(argument); keyId != "" {