fix: panic due to nil pointer when disconnecting a session
Some checks failed
Docker Build and Push / build-and-push (push) Has been cancelled

This commit is contained in:
2025-12-02 21:52:23 +07:00
parent 626b6b5feb
commit f59de03a50
3 changed files with 19 additions and 21 deletions

View File

@ -18,7 +18,7 @@ import (
"golang.org/x/crypto/ssh"
)
type SessionStatus string
type Status string
var forbiddenSlug = []string{
"ping",
@ -191,7 +191,7 @@ func (s *SSHSession) handleTCPIPForward(req *ssh.Request) {
unassign, success := portUtil.Manager.GetUnassignedPort()
portToBind = unassign
if !success {
s.Interaction.SendMessage(fmt.Sprintf("No available port\r\n", portToBind))
s.Interaction.SendMessage("No available port\r\n")
err := req.Reply(false, nil)
if err != nil {
log.Println("Failed to reply to request:", err)
@ -338,19 +338,8 @@ func (s *SSHSession) acceptTCPConnections() {
log.Printf("Failed to open forwarded-tcpip channel: %v", err)
return
}
defer func(channel ssh.Channel) {
err := channel.Close()
if err != nil {
log.Println("Failed to close connection:", err)
}
}(channel)
go func() {
defer func() {
if r := recover(); r != nil {
log.Printf("Panic in request handler: %v", r)
}
}()
for req := range reqs {
err := req.Reply(false, nil)
if err != nil {