tracing/boot: Fix to check the histogram control param is a leaf node
authorMasami Hiramatsu <mhiramat@kernel.org>
Thu, 9 Sep 2021 13:36:30 +0000 (22:36 +0900)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 9 Sep 2021 23:14:33 +0000 (19:14 -0400)
Since xbc_node_find_child() doesn't ensure the returned node
is a leaf node (key-value pair or do not have subkeys),
use xbc_node_find_value to ensure the histogram control
parameter is a leaf node in trace_boot_compose_hist_cmd().

Link: https://lkml.kernel.org/r/163119459059.161018.18341288218424528962.stgit@devnote2
Fixes: e66ed86ca6c5 ("tracing/boot: Add per-event histogram action options")
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace_boot.c

index a6be48b..db6ee37 100644 (file)
@@ -385,11 +385,11 @@ trace_boot_compose_hist_cmd(struct xbc_node *hnode, char *buf, size_t size)
        }
 
        /* Histogram control attributes (mutual exclusive) */
-       if (xbc_node_find_child(hnode, "pause"))
+       if (xbc_node_find_value(hnode, "pause", NULL))
                append_printf(&buf, end, ":pause");
-       else if (xbc_node_find_child(hnode, "continue"))
+       else if (xbc_node_find_value(hnode, "continue", NULL))
                append_printf(&buf, end, ":continue");
-       else if (xbc_node_find_child(hnode, "clear"))
+       else if (xbc_node_find_value(hnode, "clear", NULL))
                append_printf(&buf, end, ":clear");
 
        /* Histogram handler and actions */