From ab716238e0b5324a9b0999e2a478e0b55ff16561 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mar 20 2024 01:32:57 +0000 Subject: net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr() (git-fixes). --- diff --git a/patches.suse/net-sunrpc-Fix-an-off-by-one-in-rpc_sockaddr2uaddr.patch b/patches.suse/net-sunrpc-Fix-an-off-by-one-in-rpc_sockaddr2uaddr.patch new file mode 100644 index 0000000..67339ae --- /dev/null +++ b/patches.suse/net-sunrpc-Fix-an-off-by-one-in-rpc_sockaddr2uaddr.patch @@ -0,0 +1,36 @@ +From: Christophe JAILLET +Date: Tue, 24 Oct 2023 23:58:20 +0200 +Subject: [PATCH] net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr() +Git-commit: d6f4de70f73a106986ee315d7d512539f2f3303a +Patch-mainline: v6.9-rc1 +References: git-fixes + +The intent is to check if the strings' are truncated or not. So, >= should +be used instead of >, because strlcat() and snprintf() return the length of +the output, excluding the trailing NULL. + +Fixes: a02d69261134 ("SUNRPC: Provide functions for managing universal addresses") +Signed-off-by: Christophe JAILLET +Reviewed-by: Benjamin Coddington +Signed-off-by: Trond Myklebust +Acked-by: NeilBrown + +--- + net/sunrpc/addr.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/net/sunrpc/addr.c ++++ b/net/sunrpc/addr.c +@@ -284,10 +284,10 @@ char *rpc_sockaddr2uaddr(const struct so + } + + if (snprintf(portbuf, sizeof(portbuf), +- ".%u.%u", port >> 8, port & 0xff) > (int)sizeof(portbuf)) ++ ".%u.%u", port >> 8, port & 0xff) >= (int)sizeof(portbuf)) + return NULL; + +- if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) > sizeof(addrbuf)) ++ if (strlcat(addrbuf, portbuf, sizeof(addrbuf)) >= sizeof(addrbuf)) + return NULL; + + return kstrdup(addrbuf, gfp_flags); diff --git a/series.conf b/series.conf index fbe5505..10dda42 100644 --- a/series.conf +++ b/series.conf @@ -45691,6 +45691,7 @@ patches.suse/ALSA-usb-audio-Stop-parsing-channels-bits-when-all-c.patch patches.suse/nilfs2-fix-failure-to-detect-DAT-corruption-in-btree.patch patches.suse/nilfs2-prevent-kernel-bug-at-submit_bh_wbc.patch + patches.suse/net-sunrpc-Fix-an-off-by-one-in-rpc_sockaddr2uaddr.patch # jejb/scsi for-next patches.suse/scsi-lpfc-Initialize-status-local-variable-in-lpfc_s.patch