From e63f992fed51d5a576ea2890cd7eb3000c9e6884 Mon Sep 17 00:00:00 2001 From: Miles Chen Date: Tue, 2 Apr 2024 17:25:19 +0800 Subject: [PATCH] rpc: fix ipc max path size (#29385) --- rpc/ipc_unix.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rpc/ipc_unix.go b/rpc/ipc_unix.go index 33c1cad5494a..588bf6260566 100644 --- a/rpc/ipc_unix.go +++ b/rpc/ipc_unix.go @@ -25,14 +25,16 @@ import ( "net" "os" "path/filepath" + "syscall" "github.com/ethereum/go-ethereum/log" ) const ( - // On Linux, sun_path is 108 bytes in size - // see http://man7.org/linux/man-pages/man7/unix.7.html - maxPathSize = int(108) + // The limit of unix domain socket path diverse between OS, on Darwin it's 104 bytes + // but on Linux it's 108 byte, so we should depend on syscall.RawSockaddrUnix's + // definition dynamically + maxPathSize = len(syscall.RawSockaddrUnix{}.Path) ) // ipcListen will create a Unix socket on the given endpoint.