kernel/gcov/fs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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);
}
/*
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/
© 2016 - 2026 Red Hat, Inc.