From 5fe8706edefad4b2f4fd17347fd1d84a3c63169b Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Mon, 6 Feb 2023 07:25:42 -0500 Subject: [PATCH] rpc: fix off-by-one in ipc endpoint length check (#26614) This change fixes a minor flaw in the check for ipc endpoint length. The max_path_size is the max path that an ipc endpoint can have, which is 208. However, that size concerns the null-terminated pathname, so we need to account for an extra null-character too. --- rpc/ipc_unix.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rpc/ipc_unix.go b/rpc/ipc_unix.go index 249a9cf044dc..9876347708a6 100644 --- a/rpc/ipc_unix.go +++ b/rpc/ipc_unix.go @@ -31,8 +31,9 @@ import ( // ipcListen will create a Unix socket on the given endpoint. func ipcListen(endpoint string) (net.Listener, error) { - if len(endpoint) > int(max_path_size) { - log.Warn(fmt.Sprintf("The ipc endpoint is longer than %d characters. ", max_path_size), + // account for null-terminator too + if len(endpoint)+1 > int(max_path_size) { + log.Warn(fmt.Sprintf("The ipc endpoint is longer than %d characters. ", max_path_size-1), "endpoint", endpoint) }