Re: [PATCH] sh: Replace all non-returning strlcpy with strscpy

From: Kees Cook
Date: Wed Jun 14 2023 - 15:28:43 EST


On Wed, Jun 14, 2023 at 09:23:49PM +0200, John Paul Adrian Glaubitz wrote:
> On Wed, 2023-06-14 at 12:03 -0700, Kees Cook wrote:
> > On Wed, Jun 14, 2023 at 08:49:13PM +0200, John Paul Adrian Glaubitz wrote:
> > > Hi Kees!
> > >
> > > On Wed, 2023-06-14 at 11:44 -0700, Kees Cook wrote:
> > > > On Tue, 30 May 2023 16:30:41 +0000, Azeem Shaikh wrote:
> > > > > strlcpy() reads the entire source buffer first.
> > > > > This read may exceed the destination size limit.
> > > > > This is both inefficient and can lead to linear read
> > > > > overflows if a source string is not NUL-terminated [1].
> > > > > In an effort to remove strlcpy() completely [2], replace
> > > > > strlcpy() here with strscpy().
> > > > > No return values were used, so direct replacement is safe.
> > > > >
> > > > > [...]
> > > >
> > > > Build tested with sh4 GCC 13.1 from:
> > > > https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.1.0/
> > > >
> > > > with defconfig and:
> > > > CONFIG_CPU_SUBTYPE_SH7343=y
> > > > CONFIG_SH_DMA=y
> > > > CONFIG_SH_DMA_API=y
> > > >
> > > > Applied to for-next/hardening, thanks!
> > > >
> > > > [1/1] sh: Replace all non-returning strlcpy with strscpy
> > > > https://git.kernel.org/kees/c/ca64da3052be
> > > >
> > >
> > > Apologies, this fell off my table. I should have acked and tested this being the
> > > SuperH maintainer. If you can still update the patch in your tree, I can both
> > > test and ack this patch.
> >
> > Absolutely! Thanks for double-checking. :)
>
> I have tested the patch on my SH-7785LCR board on top of Linus' tree and
> also acked it.

Awesome. :) I have updated the tags and will push out my tree shortly.

Thanks!

-Kees

--
Kees Cook