RE: [PATCH] bpf: Replace strlcpy with strscpy in preload module

From: David Laight
Date: Mon Oct 10 2022 - 05:10:39 EST


From: Rui Li
> Sent: 09 October 2022 14:03
>
> Use strscpy instead of strlcpy as the former one checks the size
> of source. Especially for this case, source strings are less than
> dst size.

Not relevant.
The only problem with strlcpy() is the return value when the
the copy has to be truncated.
As well as wasting computrons it can fault if the source string
isn't actually terminated (which might be true for arbitrary pointers).
In this case the source strings are well formed and short.

While strscpy() might be a preferred function the reason above
is bogus.

David

>
> Signed-off-by: Rui Li <me@xxxxxxxxx>
> ---
> kernel/bpf/preload/bpf_preload_kern.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/bpf/preload/bpf_preload_kern.c b/kernel/bpf/preload/bpf_preload_kern.c
> index 5106b5372f0c..af8dd3a7c928 100644
> --- a/kernel/bpf/preload/bpf_preload_kern.c
> +++ b/kernel/bpf/preload/bpf_preload_kern.c
> @@ -19,9 +19,9 @@ static void free_links_and_skel(void)
>
> static int preload(struct bpf_preload_info *obj)
> {
> - strlcpy(obj[0].link_name, "maps.debug", sizeof(obj[0].link_name));
> + strscpy(obj[0].link_name, "maps.debug", sizeof(obj[0].link_name));
> obj[0].link = maps_link;
> - strlcpy(obj[1].link_name, "progs.debug", sizeof(obj[1].link_name));
> + strscpy(obj[1].link_name, "progs.debug", sizeof(obj[1].link_name));
> obj[1].link = progs_link;
> return 0;
> }
> --
> 2.30.2
>

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)