On Wed, Nov 6, 2024 at 9:40 PM Benjamin Coddington <bcodding@xxxxxxxxxx> wrote: > > On 6 Nov 2024, at 15:20, Roland Mainz wrote: > > > On Wed, Nov 6, 2024 at 3:49 AM Daniel Yang <danielyangkang@xxxxxxxxx> wrote: > >> > >> The function strcpy is deprecated due to lack of bounds checking. The > >> recommended replacement is strscpy. > >> > >> Signed-off-by: Daniel Yang <danielyangkang@xxxxxxxxx> > >> --- > >> fs/nfs/sysfs.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/fs/nfs/sysfs.c b/fs/nfs/sysfs.c > >> index bf378ecd5..f3d0b2ef9 100644 > >> --- a/fs/nfs/sysfs.c > >> +++ b/fs/nfs/sysfs.c > >> @@ -280,7 +280,7 @@ void nfs_sysfs_link_rpc_client(struct nfs_server *server, > >> char name[RPC_CLIENT_NAME_SIZE]; > >> int ret; > >> > >> - strcpy(name, clnt->cl_program->name); > >> + strscpy(name, clnt->cl_program->name); > > > > How should the "bounds checking" work in this case if you only pass > > two arguments ? > > The linux kernel strscpy() checks the sizeof the destination. Then the kernel strscpy() should be renamed accordingly, and not confuse people. Suggested name would be kstrscpy(). Otherwise this would disqualify strscpy() ever from being adopted as a POSIX standard, as there are two - kernel and glibc - conflicting implementations Sebi -- Sebastian Feld - IT secruity expert