NFSD: Fix strncpy() fortify warning
authorChuck Lever <chuck.lever@oracle.com>
Wed, 27 Jul 2022 18:40:03 +0000 (14:40 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 30 Jul 2022 00:16:58 +0000 (20:16 -0400)
In function ‘strncpy’,
    inlined from ‘nfsd4_ssc_setup_dul’ at /home/cel/src/linux/manet/fs/nfsd/nfs4proc.c:1392:3,
    inlined from ‘nfsd4_interssc_connect’ at /home/cel/src/linux/manet/fs/nfsd/nfs4proc.c:1489:11:
/home/cel/src/linux/manet/include/linux/fortify-string.h:52:33: warning: ‘__builtin_strncpy’ specified bound 63 equals destination size [-Wstringop-truncation]
   52 | #define __underlying_strncpy    __builtin_strncpy
      |                                 ^
/home/cel/src/linux/manet/include/linux/fortify-string.h:89:16: note: in expansion of macro ‘__underlying_strncpy’
   89 |         return __underlying_strncpy(p, q, size);
      |                ^~~~~~~~~~~~~~~~~~~~

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4proc.c
include/linux/nfs_ssc.h

index 5af9f8d1feb6e7d64eafdffd5af88da656c84c77..660bd49f3a320a7c7c0a23d889f26d6641c06a7f 100644 (file)
@@ -1389,7 +1389,7 @@ try_again:
                return 0;
        }
        if (work) {
-               strncpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr));
+               strlcpy(work->nsui_ipaddr, ipaddr, sizeof(work->nsui_ipaddr) - 1);
                refcount_set(&work->nsui_refcnt, 2);
                work->nsui_busy = true;
                list_add_tail(&work->nsui_list, &nn->nfsd_ssc_mount_list);
index 222ae8883e8544a0dce74479a9393fb0d30fa883..75843c00f326a270953416e8377a89bc2c75c97e 100644 (file)
@@ -64,7 +64,7 @@ struct nfsd4_ssc_umount_item {
        refcount_t nsui_refcnt;
        unsigned long nsui_expire;
        struct vfsmount *nsui_vfsmount;
-       char nsui_ipaddr[RPC_MAX_ADDRBUFLEN];
+       char nsui_ipaddr[RPC_MAX_ADDRBUFLEN + 1];
 };
 #endif