Messages in this thread | | | From | Arnd Bergmann <> | Date | Fri, 25 May 2018 22:18:16 +0200 | Subject | Re: [PATCH] xfs: mark sb_fname as nonstring |
| |
On Fri, May 25, 2018 at 6:52 PM, Christoph Hellwig <hch@infradead.org> wrote: >> diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c >> index 84fbf164cbc3..eb79f2bc4dcc 100644 >> --- a/fs/xfs/xfs_ioctl.c >> +++ b/fs/xfs/xfs_ioctl.c >> @@ -1819,12 +1819,12 @@ xfs_ioc_getlabel( >> BUILD_BUG_ON(sizeof(sbp->sb_fname) > FSLABEL_MAX); >> >> spin_lock(&mp->m_sb_lock); >> - strncpy(label, sbp->sb_fname, sizeof(sbp->sb_fname)); >> + strncpy(label, sbp->sb_fname, XFSLABEL_MAX); >> spin_unlock(&mp->m_sb_lock); > > Hmm, shouldn't we just do a memcpy here?
I thought about that as well, but decided that strncpy()'s zero-padding is better here than padding with potentially random contents of the user space stack.
> Also given that the kernel never even looks at sb_fname maybe > we can turn into an array of unsigned chars to escape those string > warnings?
I don't think that makes a difference to gcc.
Arnd
| |