[PATCH] gcov: use strscpy() instead of strcpy() in init_node()

Hrushiraj Gandhi posted 1 patch 3 weeks, 4 days ago
kernel/gcov/fs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] gcov: use strscpy() instead of strcpy() in init_node()
Posted by Hrushiraj Gandhi 3 weeks, 4 days ago
node->name is a flexible array member sized to exactly strlen(name) +
1 bytes at allocation time in new_node(), so this copy can never
actually overflow. Still, prefer the bounded strscpy() over strcpy()
on general principle; pass the same strlen(name) + 1 bound the
allocation used, since sizeof() cannot be applied to a flexible array
member.

No functional change.

Signed-off-by: Hrushiraj Gandhi <hrushirajg23@gmail.com>
---
 kernel/gcov/fs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
index 1d19b1be207a..764918570de1 100644
--- a/kernel/gcov/fs.c
+++ b/kernel/gcov/fs.c
@@ -529,7 +529,7 @@ static void init_node(struct gcov_node *node, struct gcov_info *info,
 	}
 	node->parent = parent;
 	if (name)
-		strcpy(node->name, name);
+		strscpy(node->name, name, strlen(name) + 1);
 }
 
 /*
Re: [PATCH] gcov: use strscpy() instead of strcpy() in init_node()
Posted by Bradley Morgan 3 weeks, 4 days ago
On 31 August 2026 15:49:53 BST, Hrushiraj Gandhi <hrushirajg23@gmail.com>
wrote:
>node->name is a flexible array member sized to exactly strlen(name) +
>1 bytes at allocation time in new_node(), so this copy can never
>actually overflow. Still, prefer the bounded strscpy() over strcpy()
>on general principle; pass the same strlen(name) + 1 bound the
>allocation used, since sizeof() cannot be applied to a flexible array
>member.
>
>No functional change.
>
>Signed-off-by: Hrushiraj Gandhi <hrushirajg23@gmail.com>
>---
> kernel/gcov/fs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/kernel/gcov/fs.c b/kernel/gcov/fs.c
>index 1d19b1be207a..764918570de1 100644
>--- a/kernel/gcov/fs.c
>+++ b/kernel/gcov/fs.c
>@@ -529,7 +529,7 @@ static void init_node(struct gcov_node *node, struct gcov_info *info,
> 	}
> 	node->parent = parent;
> 	if (name)
>-		strcpy(node->name, name);
>+		strscpy(node->name, name, strlen(name) + 1);
> }
> 
> /*
>
>
LGTM, thanks.

Reviewed-by: Bradley Morgan <brads@mainlining.org>


Maybe Andrew may like to see this?!
--- Thanks!
https://lore.kernel.org/all/EE579805-42F2-4C58-B752-F28779EEB717@grrlz.net/