[PATCH] perf tools: Replace strlcpy with strscpy

ny posted 1 patch 2 months ago
tools/perf/util/machine.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] perf tools: Replace strlcpy with strscpy
Posted by ny 2 months ago
Replace the deprecated strlcpy function with the preferred strscpy
function in tools/perf/util/machine.c.

strlcpy is deprecated and should be replaced with strscpy according
to kernel best practices. The strscpy function is safer and is the
recommended replacement.

Signed-off-by: ny <nygameemail@163.com>
---
 tools/perf/util/machine.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 841b711d9..8786764e2 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -1052,7 +1052,7 @@ int machine__create_extra_kernel_map(struct machine *machine,
 
 	kmap = map__kmap(map);
 
-	strlcpy(kmap->name, xm->name, KMAP_NAME_LEN);
+	strscpy(kmap->name, xm->name, KMAP_NAME_LEN);
 
 	err = maps__insert(machine__kernel_maps(machine), map);
 
-- 
2.43.0
Re: [PATCH] perf tools: Replace strlcpy with strscpy
Posted by Arnaldo Carvalho de Melo 3 weeks, 3 days ago
On Tue, Dec 09, 2025 at 12:59:15PM +0000, ny wrote:
> Replace the deprecated strlcpy function with the preferred strscpy
> function in tools/perf/util/machine.c.
> 
> strlcpy is deprecated and should be replaced with strscpy according
> to kernel best practices. The strscpy function is safer and is the
> recommended replacement.

Take a look at this:

acme@number:~/git/perf-tools-next$ git grep strscpy tools/
tools/include/linux/string.h:#define strscpy strcpy
tools/testing/selftests/net/ovpn/ovpn-cli.c:#define strscpy strncpy
tools/testing/selftests/net/ovpn/ovpn-cli.c:    strscpy(ovpn->ifname, argv[2], IFNAMSIZ - 1);
tools/testing/selftests/user_events/abi_test.c:                         /* strscpy is not available, use snprintf */
acme@number:~/git/perf-tools-next$

:-)

srcscpy() thus seems to be only available in the kernel sources, not for
tools/, that would be another project.

- Arnaldo
 
> Signed-off-by: ny <nygameemail@163.com>
> ---
>  tools/perf/util/machine.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
> index 841b711d9..8786764e2 100644
> --- a/tools/perf/util/machine.c
> +++ b/tools/perf/util/machine.c
> @@ -1052,7 +1052,7 @@ int machine__create_extra_kernel_map(struct machine *machine,
>  
>  	kmap = map__kmap(map);
>  
> -	strlcpy(kmap->name, xm->name, KMAP_NAME_LEN);
> +	strscpy(kmap->name, xm->name, KMAP_NAME_LEN);
>  
>  	err = maps__insert(machine__kernel_maps(machine), map);
>  
> -- 
> 2.43.0