From 4a28722e4aa14f1d125ae789b9966c658d60c0ed Mon Sep 17 00:00:00 2001 From: MaineK00n Date: Fri, 22 Sep 2023 17:31:26 +0900 Subject: [PATCH] fix(scanner): fix socket file name length of SSH ControlPath (#1714) --- scanner/executil.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scanner/executil.go b/scanner/executil.go index c732d291..b7b7a10a 100644 --- a/scanner/executil.go +++ b/scanner/executil.go @@ -3,6 +3,7 @@ package scanner import ( "bytes" "fmt" + "hash/fnv" "io" ex "os/exec" "path/filepath" @@ -213,7 +214,12 @@ func sshExecExternal(c config.ServerInfo, cmdstr string, sudo bool) (result exec return } - controlPath := filepath.Join(home, ".vuls", `controlmaster-%r-`+c.ServerName+`.%p`) + controlPath := filepath.Join(home, ".vuls", "cm-%C") + h := fnv.New32() + if _, err := h.Write([]byte(c.ServerName)); err == nil { + controlPath = filepath.Join(home, ".vuls", fmt.Sprintf("cm-%x-%%C", h.Sum32())) + } + args = append(args, "-o", "ControlMaster=auto", "-o", fmt.Sprintf("ControlPath=%s", controlPath),