| From 64e6c25a7162a2bd297b01f343408f4c0228cfef Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 11 Dec 2025 14:00:58 +0400 |
| Subject: tracing: Properly process error handling in |
| event_hist_trigger_parse() |
| |
| From: Miaoqian Lin <linmq006@gmail.com> |
| |
| [ Upstream commit 0550069cc25f513ce1f109c88f7c1f01d63297db ] |
| |
| Memory allocated with trigger_data_alloc() requires trigger_data_free() |
| for proper cleanup. |
| |
| Replace kfree() with trigger_data_free() to fix this. |
| |
| Found via static analysis and code review. |
| |
| This isn't a real bug due to the current code basically being an open |
| coded version of trigger_data_free() without the synchronization. The |
| synchronization isn't needed as this is the error path of creation and |
| there's nothing to synchronize against yet. Replace the kfree() to be |
| consistent with the allocation. |
| |
| Cc: Masami Hiramatsu <mhiramat@kernel.org> |
| Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| Cc: Tom Zanussi <zanussi@kernel.org> |
| Link: https://patch.msgid.link/20251211100058.2381268-1-linmq006@gmail.com |
| Fixes: e1f187d09e11 ("tracing: Have existing event_command.parse() implementations use helpers") |
| Signed-off-by: Miaoqian Lin <linmq006@gmail.com> |
| Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| kernel/trace/trace_events_hist.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c |
| index c97bb2fda5c02..7e50df8b800b1 100644 |
| --- a/kernel/trace/trace_events_hist.c |
| +++ b/kernel/trace/trace_events_hist.c |
| @@ -6911,7 +6911,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops, |
| |
| remove_hist_vars(hist_data); |
| |
| - kfree(trigger_data); |
| + trigger_data_free(trigger_data); |
| |
| destroy_hist_data(hist_data); |
| goto out; |
| -- |
| 2.51.0 |
| |