Re: [PATCH] Use strscpy() instead of strcpy()

From: Christophe JAILLET
Date: Thu Nov 14 2024 - 15:54:02 EST


Le 14/11/2024 à 10:14, Abdul Rahim a écrit :
On Wed, Nov 13, 2024 at 10:28:36PM +0100, Christophe JAILLET wrote:

...

diff --git a/fs/ceph/export.c b/fs/ceph/export.c
index 0e5b3c7b3756..48265c879fcf 100644
--- a/fs/ceph/export.c
+++ b/fs/ceph/export.c
@@ -452,7 +452,12 @@ static int __get_snap_name(struct dentry *parent, char *name,
goto out;
if (ceph_snap(inode) == CEPH_SNAPDIR) {
if (ceph_snap(dir) == CEPH_NOSNAP) {
- strcpy(name, fsc->mount_options->snapdir_name);
+ /*
+ * get_name assumes that name is pointing to a
+ * NAME_MAX+1 sized buffer
+ */

It is a matter of taste, and I'm not the maintainer, but my personal feeling would go for something like:

/* .get_name() from struct export_operations assumes that its 'name' parameter is pointing to a NAME_MAX+1 sized buffer */

CJ

+ strscpy(name, fsc->mount_options->snapdir_name,
+ NAME_MAX+1);
err = 0;
}
goto out;


Looks good?