Re: [PATCH] clk: clkdev: Replace strlcpy with strscpy

From: Kees Cook
Date: Fri Nov 15 2019 - 12:00:32 EST


On Fri, Nov 15, 2019 at 10:17:53AM +0000, Peng Fan wrote:
> From: Peng Fan <peng.fan@xxxxxxx>
>
> The implementation of strscpy() is more robust and safer.
>
> The strscpy was introduced to fix some API problems around strlcpy.
> strscpy is preferred to strlcpy() since the API doesn't require
> reading memory from the src string beyond the specified "count" bytes,
> and since the return value is easier to error-check than strlcpy()'s.
> In addition, the implementation is robust to the string changing out
> from underneath it, unlike the current strlcpy() implementation.
>
> Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>

Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>

-Kees

> ---
> drivers/clk/clkdev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
> index 0f2e3fcf0f19..ee56109bc0b4 100644
> --- a/drivers/clk/clkdev.c
> +++ b/drivers/clk/clkdev.c
> @@ -165,7 +165,7 @@ vclkdev_alloc(struct clk_hw *hw, const char *con_id, const char *dev_fmt,
>
> cla->cl.clk_hw = hw;
> if (con_id) {
> - strlcpy(cla->con_id, con_id, sizeof(cla->con_id));
> + strscpy(cla->con_id, con_id, sizeof(cla->con_id));
> cla->cl.con_id = cla->con_id;
> }
>
> --
> 2.16.4
>

--
Kees Cook