Re: [PATCH 1/2] string: Add stracpy and stracpy_pad mechanisms

From: Joe Perches
Date: Wed Jul 24 2019 - 07:40:37 EST


On Tue, 2019-07-23 at 14:36 -0700, Kees Cook wrote:
> On Mon, Jul 22, 2019 at 05:38:15PM -0700, Joe Perches wrote:
> > Several uses of strlcpy and strscpy have had defects because the
> > last argument of each function is misused or typoed.
> >
> > Add macro mechanisms to avoid this defect.
> >
> > stracpy (copy a string to a string array) must have a string
> > array as the first argument (to) and uses sizeof(to) as the
> > size.
> >
> > These mechanisms verify that the to argument is an array of
> > char or other compatible types like u8 or unsigned char.
> >
> > A BUILD_BUG is emitted when the type of to is not compatible.
> >
> > Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
>
> I think Rasmus's suggestion would make sense:
>
> BUILD_BUG_ON(!__same_type(typeof(to), char[]))

I think Rasmus had an excellent suggestion.
I liked it and submitted it as V2.

> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

Thanks.