From 5564ea9ca23217687a6e6c091f3b4fc11e375a2f Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Mon, 27 Sep 2021 19:28:06 +0100 Subject: Don't swallow an error parsing SSH_ORIGINAL_COMMAND --- internal/command/commandargs/shell.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'internal/command/commandargs') 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 != "" { -- cgit v1.2.1