Re: [PATCH] crypto: hisilicon - fix strncpy warning with strlcpy

From: Eric Biggers
Date: Fri Jun 05 2020 - 11:49:07 EST


On Fri, Jun 05, 2020 at 11:26:20PM +0800, Zhangfei Gao wrote:
>
>
> On 2020/6/5 äå8:17, Herbert Xu wrote:
> > On Fri, Jun 05, 2020 at 05:34:32PM +0800, Zhangfei Gao wrote:
> > > Will add a check after the copy.
> > >
> > > ÂÂÂÂÂÂÂ strlcpy(interface.name, pdev->driver->name, sizeof(interface.name));
> > > ÂÂÂÂÂÂÂ if (strlen(pdev->driver->name) != strlen(interface.name))
> > > ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ return -EINVAL;
> > You don't need to do strlen. The function strlcpy returns the
> > length of the source string.
> >
> > Better yet use strscpy which will even return an error for you.
> >
> >
> Yes, good idea, we can use strscpy.
>
> +ÂÂÂÂÂÂ int ret;
>
> -ÂÂÂÂÂÂ strncpy(interface.name, pdev->driver->name, sizeof(interface.name));
> +ÂÂÂÂÂÂ ret = strscpy(interface.name, pdev->driver->name,
> sizeof(interface.name));
> +ÂÂÂÂÂÂ if (ret < 0)
> +ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ return ret;

You might want to use -ENAMETOOLONG instead of the strscpy return value of
-E2BIG.