From bfc5c02e7f56addad46dada4b539a704fa3f8aed Mon Sep 17 00:00:00 2001 From: simitt Date: Fri, 2 Apr 2021 13:42:21 +0200 Subject: [PATCH] [Elastic Agent]: Reduce allowed socket path length Length limit is 104 on unix. --- x-pack/elastic-agent/pkg/agent/control/addr.go | 4 ++-- .../elastic-agent/pkg/core/monitoring/beats/monitoring.go | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/x-pack/elastic-agent/pkg/agent/control/addr.go b/x-pack/elastic-agent/pkg/agent/control/addr.go index 4f210efca4f..fabaf483140 100644 --- a/x-pack/elastic-agent/pkg/agent/control/addr.go +++ b/x-pack/elastic-agent/pkg/agent/control/addr.go @@ -22,9 +22,9 @@ func Address() string { return paths.SocketPath } - // unix socket path cannot be longer than 107 characters + // unix socket path must be less than 104 characters path := fmt.Sprintf("unix://%s.sock", filepath.Join(paths.TempDir(), "elastic-agent-control")) - if len(path) <= 107 { + if len(path) < 104 { return path } // place in global /tmp to ensure that its small enough to fit; current path is way to long diff --git a/x-pack/elastic-agent/pkg/core/monitoring/beats/monitoring.go b/x-pack/elastic-agent/pkg/core/monitoring/beats/monitoring.go index 991d617f2b8..02b0c320d62 100644 --- a/x-pack/elastic-agent/pkg/core/monitoring/beats/monitoring.go +++ b/x-pack/elastic-agent/pkg/core/monitoring/beats/monitoring.go @@ -33,9 +33,9 @@ func getMonitoringEndpoint(spec program.Spec, operatingSystem, pipelineID string if operatingSystem == "windows" { return fmt.Sprintf(mbEndpointFileFormatWin, pipelineID, spec.Cmd) } - // unix socket path cannot be longer than 107 characters + // unix socket path must be less than 104 characters path := fmt.Sprintf("unix://%s.sock", filepath.Join(paths.TempDir(), pipelineID, spec.Cmd, spec.Cmd)) - if len(path) <= 107 { + if len(path) < 104 { return path } // place in global /tmp to ensure that its small enough to fit; current path is way to long @@ -58,9 +58,9 @@ func AgentMonitoringEndpoint(operatingSystem string) string { if operatingSystem == "windows" { return agentMbEndpointFileFormatWin } - // unix socket path cannot be longer than 107 characters + // unix socket path must be less than 104 characters path := fmt.Sprintf("unix://%s.sock", filepath.Join(paths.TempDir(), "elastic-agent")) - if len(path) <= 107 { + if len(path) < 104 { return path } // place in global /tmp to ensure that its small enough to fit; current path is way to long