Re: [PATCH] tracing: Fix missing trace_boot_init_histograms kstrdup NULL checks

From: Steven Rostedt
Date: Mon Oct 25 2021 - 23:10:59 EST


On Fri, 15 Oct 2021 15:55:50 -0400
Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> wrote:

> trace_boot_init_histograms misses NULL pointer checks for kstrdup
> failure.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>

Masami,

Can you ack this?

-- Steve

> ---
> kernel/trace/trace_boot.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c
> index 8d252f63cd78..0580287d7a0d 100644
> --- a/kernel/trace/trace_boot.c
> +++ b/kernel/trace/trace_boot.c
> @@ -430,6 +430,8 @@ trace_boot_init_histograms(struct trace_event_file *file,
> /* All digit started node should be instances. */
> if (trace_boot_compose_hist_cmd(node, buf, size) == 0) {
> tmp = kstrdup(buf, GFP_KERNEL);
> + if (!tmp)
> + return;
> if (trigger_process_regex(file, buf) < 0)
> pr_err("Failed to apply hist trigger: %s\n", tmp);
> kfree(tmp);
> @@ -439,6 +441,8 @@ trace_boot_init_histograms(struct trace_event_file *file,
> if (xbc_node_find_subkey(hnode, "keys")) {
> if (trace_boot_compose_hist_cmd(hnode, buf, size) == 0) {
> tmp = kstrdup(buf, GFP_KERNEL);
> + if (!tmp)
> + return;
> if (trigger_process_regex(file, buf) < 0)
> pr_err("Failed to apply hist trigger: %s\n", tmp);
> kfree(tmp);