]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSD: Fix destination buffer size in nfsd4_ssc_setup_dul()
authorThorsten Blum <thorsten.blum@linux.dev>
Wed, 6 Aug 2025 01:10:01 +0000 (03:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Oct 2025 14:33:58 +0000 (16:33 +0200)
commit ab1c282c010c4f327bd7addc3c0035fd8e3c1721 upstream.

Commit 5304877936c0 ("NFSD: Fix strncpy() fortify warning") replaced
strncpy(,, sizeof(..)) with strlcpy(,, sizeof(..) - 1), but strlcpy()
already guaranteed NUL-termination of the destination buffer and
subtracting one byte potentially truncated the source string.

The incorrect size was then carried over in commit 72f78ae00a8e ("NFSD:
move from strlcpy with unused retval to strscpy") when switching from
strlcpy() to strscpy().

Fix this off-by-one error by using the full size of the destination
buffer again.

Cc: stable@vger.kernel.org
Fixes: 5304877936c0 ("NFSD: Fix strncpy() fortify warning")
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfsd/nfs4proc.c

index 02c9f3b312a0e88440f4bfd95d7651d5c7243345..219ac1695176b1138f0146d1bd64ebbaf8874d92 100644 (file)
@@ -1372,7 +1372,7 @@ try_again:
                return 0;
        }
        if (work) {
-               strscpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr) - 1);
+               strscpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr));
                refcount_set(&work->nsui_refcnt, 2);
                work->nsui_busy = true;
                list_add_tail(&work->nsui_list, &nn->nfsd_ssc_mount_list);