Re: [PATCH next] kernel/trace/trace_printk: Use kstrdup() instead of kmalloc() and strcpy()
From: Google
Date: Mon Jun 08 2026 - 04:34:37 EST
On Sat, 6 Jun 2026 21:26:28 +0100
david.laight.linux@xxxxxxxxx wrote:
> From: David Laight <david.laight.linux@xxxxxxxxx>
>
> Signed-off-by: David Laight <david.laight.linux@xxxxxxxxx>
> ---
> This is one of a group of patches that remove potentially unbounded
> strcpy() calls.
>
> They are mostly replaced by strscpy() or, when strlen() has just been
> called, with memcpy() (usually including the '\0').
>
> Calls with copy string literals into arrays are left unchanged.
> They are safe and easily detected as such.
>
> The changes were made by getting the compiler to detect the calls and
> then fixing the code by hand.
>
> Note that all the changes are only compile tested.
>
> Some Makefiles were changed to allow files to contain strcpy().
> As well as 'difficult to fix' files, this included 'show' functions
> as they really need to use sysfs_emit() or seq_printf().
>
> All the patches are being sent individually to avoid very long cc lists.
> Apologies for the terse commit messages and likely unexpected tags.
> (There are about 100 patches in total.)
>
This looks good to me.
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>
Thanks,
> kernel/trace/trace_printk.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
> index 3ea17af60169..98171a2398e4 100644
> --- a/kernel/trace/trace_printk.c
> +++ b/kernel/trace/trace_printk.c
> @@ -71,10 +71,9 @@ void hold_module_trace_bprintk_format(const char **start, const char **end)
> fmt = NULL;
> tb_fmt = kmalloc_obj(*tb_fmt);
> if (tb_fmt) {
> - fmt = kmalloc(strlen(*iter) + 1, GFP_KERNEL);
> + fmt = kstrdup(*iter, GFP_KERNEL);
> if (fmt) {
> list_add_tail(&tb_fmt->list, &trace_bprintk_fmt_list);
> - strcpy(fmt, *iter);
> tb_fmt->fmt = fmt;
> } else
> kfree(tb_fmt);
> --
> 2.39.5
>
--
Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>