diff --git a/main-mshell.go b/main-mshell.go index 7cb4836b..6eebbb5f 100644 --- a/main-mshell.go +++ b/main-mshell.go @@ -243,6 +243,10 @@ func handleRemote() { sender.SendErrorPacket(fmt.Sprintf("invalid packet '%s' sent to mshell", pk.GetType())) return } + if runPacket == nil { + sender.SendErrorPacket(fmt.Sprintf("no run packet received")) + return + } cmd, err := shexec.RunCommand(runPacket, sender) if err != nil { sender.SendErrorPacket(fmt.Sprintf("error running command: %v", err)) @@ -311,6 +315,9 @@ func parseClientOpts() (*shexec.ClientOpts, error) { opts.SSHOptsTerm = true break } + if argStr == "-t" || argStr == "-tt" { + return nil, fmt.Errorf("mshell cannot run over ssh -t") + } opts.SSHOpts = append(opts.SSHOpts, argStr) } if !opts.SSHOptsTerm {