fs/xfs/libxfs/xfs_format.h | 2 +- fs/xfs/xfs_ioctl.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-)
Replace the deprecated strncpy() with memtostr_pad(). This also avoids
the need for separate zeroing using memset(). Mark sb_fname buffer with
__nonstring as its size is XFSLABEL_MAX and so no terminating NULL for
sb_fname.
Signed-off-by: Pranav Tyagi <pranav.tyagi03@gmail.com>
---
fs/xfs/libxfs/xfs_format.h | 2 +-
fs/xfs/xfs_ioctl.c | 3 +--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
index 9566a7623365..779dac59b1f3 100644
--- a/fs/xfs/libxfs/xfs_format.h
+++ b/fs/xfs/libxfs/xfs_format.h
@@ -112,7 +112,7 @@ typedef struct xfs_sb {
uint16_t sb_sectsize; /* volume sector size, bytes */
uint16_t sb_inodesize; /* inode size, bytes */
uint16_t sb_inopblock; /* inodes per block */
- char sb_fname[XFSLABEL_MAX]; /* file system name */
+ char sb_fname[XFSLABEL_MAX] __nonstring; /* file system name */
uint8_t sb_blocklog; /* log2 of sb_blocksize */
uint8_t sb_sectlog; /* log2 of sb_sectsize */
uint8_t sb_inodelog; /* log2 of sb_inodesize */
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index d250f7f74e3b..c3e8c5c1084f 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -990,9 +990,8 @@ xfs_ioc_getlabel(
BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX);
/* 1 larger than sb_fname, so this ensures a trailing NUL char */
- memset(label, 0, sizeof(label));
spin_lock(&mp->m_sb_lock);
- strncpy(label, sbp->sb_fname, XFSLABEL_MAX);
+ memtostr_pad(label, sbp->sb_fname);
spin_unlock(&mp->m_sb_lock);
if (copy_to_user(user_label, label, sizeof(label)))
--
2.49.0
On Fri, 04 Jul 2025 15:42:50 +0530, Pranav Tyagi wrote: > Replace the deprecated strncpy() with memtostr_pad(). This also avoids > the need for separate zeroing using memset(). Mark sb_fname buffer with > __nonstring as its size is XFSLABEL_MAX and so no terminating NULL for > sb_fname. > > Applied to for-next, thanks! [1/1] fs/xfs: replace strncpy with memtostr_pad() commit: f161da9418910f4ab7a29099682d03e06ef2c3ef Best regards, -- Carlos Maiolino <cem@kernel.org>
On Fri, Jul 4, 2025 at 3:42 PM Pranav Tyagi <pranav.tyagi03@gmail.com> wrote: > > Replace the deprecated strncpy() with memtostr_pad(). This also avoids > the need for separate zeroing using memset(). Mark sb_fname buffer with > __nonstring as its size is XFSLABEL_MAX and so no terminating NULL for > sb_fname. > > Signed-off-by: Pranav Tyagi <pranav.tyagi03@gmail.com> > --- > fs/xfs/libxfs/xfs_format.h | 2 +- > fs/xfs/xfs_ioctl.c | 3 +-- > 2 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index 9566a7623365..779dac59b1f3 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -112,7 +112,7 @@ typedef struct xfs_sb { > uint16_t sb_sectsize; /* volume sector size, bytes */ > uint16_t sb_inodesize; /* inode size, bytes */ > uint16_t sb_inopblock; /* inodes per block */ > - char sb_fname[XFSLABEL_MAX]; /* file system name */ > + char sb_fname[XFSLABEL_MAX] __nonstring; /* file system name */ > uint8_t sb_blocklog; /* log2 of sb_blocksize */ > uint8_t sb_sectlog; /* log2 of sb_sectsize */ > uint8_t sb_inodelog; /* log2 of sb_inodesize */ > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c > index d250f7f74e3b..c3e8c5c1084f 100644 > --- a/fs/xfs/xfs_ioctl.c > +++ b/fs/xfs/xfs_ioctl.c > @@ -990,9 +990,8 @@ xfs_ioc_getlabel( > BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX); > > /* 1 larger than sb_fname, so this ensures a trailing NUL char */ > - memset(label, 0, sizeof(label)); > spin_lock(&mp->m_sb_lock); > - strncpy(label, sbp->sb_fname, XFSLABEL_MAX); > + memtostr_pad(label, sbp->sb_fname); > spin_unlock(&mp->m_sb_lock); > > if (copy_to_user(user_label, label, sizeof(label))) > -- > 2.49.0 > Hi, This is a gentle follow-up on this patch. I would like to know if there is any update on its state. Regards Pranav Tyagi
On Thu, Jul 10, 2025 at 03:56:01PM +0530, Pranav Tyagi wrote: > On Fri, Jul 4, 2025 at 3:42 PM Pranav Tyagi <pranav.tyagi03@gmail.com> wrote: > > > > Replace the deprecated strncpy() with memtostr_pad(). This also avoids > > the need for separate zeroing using memset(). Mark sb_fname buffer with > > __nonstring as its size is XFSLABEL_MAX and so no terminating NULL for > > sb_fname. > > > > Signed-off-by: Pranav Tyagi <pranav.tyagi03@gmail.com> > > --- > > fs/xfs/libxfs/xfs_format.h | 2 +- > > fs/xfs/xfs_ioctl.c | 3 +-- > > 2 files changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > > index 9566a7623365..779dac59b1f3 100644 > > --- a/fs/xfs/libxfs/xfs_format.h > > +++ b/fs/xfs/libxfs/xfs_format.h > > @@ -112,7 +112,7 @@ typedef struct xfs_sb { > > uint16_t sb_sectsize; /* volume sector size, bytes */ > > uint16_t sb_inodesize; /* inode size, bytes */ > > uint16_t sb_inopblock; /* inodes per block */ > > - char sb_fname[XFSLABEL_MAX]; /* file system name */ > > + char sb_fname[XFSLABEL_MAX] __nonstring; /* file system name */ > > uint8_t sb_blocklog; /* log2 of sb_blocksize */ > > uint8_t sb_sectlog; /* log2 of sb_sectsize */ > > uint8_t sb_inodelog; /* log2 of sb_inodesize */ > > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c > > index d250f7f74e3b..c3e8c5c1084f 100644 > > --- a/fs/xfs/xfs_ioctl.c > > +++ b/fs/xfs/xfs_ioctl.c > > @@ -990,9 +990,8 @@ xfs_ioc_getlabel( > > BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX); > > > > /* 1 larger than sb_fname, so this ensures a trailing NUL char */ > > - memset(label, 0, sizeof(label)); > > spin_lock(&mp->m_sb_lock); > > - strncpy(label, sbp->sb_fname, XFSLABEL_MAX); > > + memtostr_pad(label, sbp->sb_fname); > > spin_unlock(&mp->m_sb_lock); > > > > if (copy_to_user(user_label, label, sizeof(label))) > > -- > > 2.49.0 > > > Hi, > > This is a gentle follow-up on this patch. I would like to > know if there is any update on its state. Looks fine to me: Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> > > Regards > Pranav Tyagi >
On Thu, Jul 10, 2025 at 03:56:01PM +0530, Pranav Tyagi wrote: > On Fri, Jul 4, 2025 at 3:42 PM Pranav Tyagi <pranav.tyagi03@gmail.com> wrote: > > > > Replace the deprecated strncpy() with memtostr_pad(). This also avoids > > the need for separate zeroing using memset(). Mark sb_fname buffer with > > __nonstring as its size is XFSLABEL_MAX and so no terminating NULL for > > sb_fname. > > > > Signed-off-by: Pranav Tyagi <pranav.tyagi03@gmail.com> > > --- > > fs/xfs/libxfs/xfs_format.h | 2 +- > > fs/xfs/xfs_ioctl.c | 3 +-- > > 2 files changed, 2 insertions(+), 3 deletions(-) > > > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > > index 9566a7623365..779dac59b1f3 100644 > > --- a/fs/xfs/libxfs/xfs_format.h > > +++ b/fs/xfs/libxfs/xfs_format.h > > @@ -112,7 +112,7 @@ typedef struct xfs_sb { > > uint16_t sb_sectsize; /* volume sector size, bytes */ > > uint16_t sb_inodesize; /* inode size, bytes */ > > uint16_t sb_inopblock; /* inodes per block */ > > - char sb_fname[XFSLABEL_MAX]; /* file system name */ > > + char sb_fname[XFSLABEL_MAX] __nonstring; /* file system name */ > > uint8_t sb_blocklog; /* log2 of sb_blocksize */ > > uint8_t sb_sectlog; /* log2 of sb_sectsize */ > > uint8_t sb_inodelog; /* log2 of sb_inodesize */ > > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c > > index d250f7f74e3b..c3e8c5c1084f 100644 > > --- a/fs/xfs/xfs_ioctl.c > > +++ b/fs/xfs/xfs_ioctl.c > > @@ -990,9 +990,8 @@ xfs_ioc_getlabel( > > BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX); > > > > /* 1 larger than sb_fname, so this ensures a trailing NUL char */ > > - memset(label, 0, sizeof(label)); > > spin_lock(&mp->m_sb_lock); > > - strncpy(label, sbp->sb_fname, XFSLABEL_MAX); > > + memtostr_pad(label, sbp->sb_fname); > > spin_unlock(&mp->m_sb_lock); > > > > if (copy_to_user(user_label, label, sizeof(label))) > > -- > > 2.49.0 > > > Hi, > > This is a gentle follow-up on this patch. I would like to > know if there is any update on its state. Seems fine to me... Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> --D > > Regards > Pranav Tyagi >
© 2016 - 2025 Red Hat, Inc.