tools/perf/jvmti/libjvmti.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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@gmail.com>
---
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);
}
}
--
2.39.2
> On 5 Nov 2024, at 12:42 PM, Daniel Yang <danielyangkang@gmail.com> 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@gmail.com>
> ---
> 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@linux.vnet.ibm.com/T/#m619e016f6dd4abb1e1830580bdc74c86b4fcace8
Thanks
Athira
> }
> }
>
> --
> 2.39.2
>
>
© 2016 - 2026 Red Hat, Inc.