Re: [PATCH] copy_class_filename: replace deprecated strlcpy with strscpy
From: Athira Rajeev
Date: Tue Nov 05 2024 - 08:53:47 EST
> On 5 Nov 2024, at 12:42 PM, Daniel Yang <danielyangkang@xxxxxxxxx> wrote:
>
> The latest kernel docs:
> https://www.kernel.org/doc/html/latest/process/deprecated.html
> recommends replacing strlcpy with strscpy as the safer alternative. The
> value of strlcpy is not used so there shouldn't be issues with replacing
> the deprecated call.
>
> Signed-off-by: Daniel Yang <danielyangkang@xxxxxxxxx>
> ---
> tools/perf/jvmti/libjvmti.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/jvmti/libjvmti.c b/tools/perf/jvmti/libjvmti.c
> index fcca275e5..04d6825d2 100644
> --- a/tools/perf/jvmti/libjvmti.c
> +++ b/tools/perf/jvmti/libjvmti.c
> @@ -158,7 +158,7 @@ copy_class_filename(const char * class_sign, const char * file_name, char * resu
> result[i] = '\0';
> } else {
> /* fallback case */
> - strlcpy(result, file_name, max_length);
> + strscpy(result, file_name, max_length);
Hi,
This hits a compilation error:
In file included from jvmti/libjvmti.c:3:
jvmti/libjvmti.c: In function ‘copy_class_filename’:
/home/athira/perf-tools-next/tools/include/linux/string.h:15:17: error: too many arguments to function ‘strcpy’
15 | #define strscpy strcpy
| ^~~~~~
jvmti/libjvmti.c:161:17: note: in expansion of macro ‘strscpy’
161 | strscpy(result, file_name, max_length);
| ^~~~~~~
In file included from /usr/include/features.h:490,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdint.h:26,
from /usr/lib/gcc/ppc64le-redhat-linux/11/include/stdint.h:9,
from /home/athira/perf-tools-next/tools/include/linux/types.h:7,
from /home/athira/perf-tools-next/tools/include/linux/compiler.h:131,
from jvmti/libjvmti.c:2:
/usr/include/bits/string_fortified.h:77:1: note: declared here
77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
| ^~~~~
My analysis/review for this is same as my response for your similar patch here:
https://lore.kernel.org/linux-perf-users/3CA737FF-2F21-42CA-BF95-5F0341F6B68B@xxxxxxxxxxxxxxxxxx/T/#m619e016f6dd4abb1e1830580bdc74c86b4fcace8
Thanks
Athira
> }
> }
>
> --
> 2.39.2
>
>