summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/command/commandargs/shell.go13
-rw-r--r--internal/sshd/session_test.go2
2 files changed, 5 insertions, 10 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 != "" {
diff --git a/internal/sshd/session_test.go b/internal/sshd/session_test.go
index b014c0c..43d6aca 100644
--- a/internal/sshd/session_test.go
+++ b/internal/sshd/session_test.go
@@ -145,7 +145,7 @@ func TestHandleShell(t *testing.T) {
{
desc: "fails to parse command",
cmd: `\`,
- errMsg: "Failed to parse command: Invalid SSH command\nUnknown command: \\\n",
+ errMsg: "Failed to parse command: Invalid SSH command: invalid command line string\nUnknown command: \\\n",
gitlabKeyId: "root",
expectedExitCode: 128,
}, {