* [PATCH] fix NULL dereference in event_trigger_reset_filter()
@ 2026-07-13 14:36 Alexander Konyukhov
0 siblings, 0 replies; 3+ messages in thread
From: Alexander Konyukhov @ 2026-07-13 14:36 UTC (permalink / raw)
To: rostedt, mhiramat; +Cc: linux-kernel, lvc-project, Alexander Konyukhov
in case trigger_data_alloc return NULL (trace_events_hist.c:6526)
→ goto out_free
→ event_trigger_reset_filter(cmd_ops, NULL) (trace_events_hist.c:6593)
→ set_trigger_filter(NULL, NULL, NULL) (trace_events_trigger.c:917)
→ filter_str == NULL, goto assign (trace_events_trigger.c:1080)
→ data->filter с data == NULL (trace_events_trigger.c:1086)
it will
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 4b147936fa50 ("tracing: Add support for 'synthetic' events")
Signed-off-by: Alexander Konyukhov <Alexander.Konyukhov@kaspersky.com>
---
kernel/trace/trace_events_hist.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 336fc54d8ec8..9d203ab56fac 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -6525,7 +6525,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
trigger_data = trigger_data_alloc(cmd_ops, cmd, param, hist_data);
if (!trigger_data) {
ret = -ENOMEM;
- goto out_free;
+ goto out_hist_data;
}
ret = event_trigger_set_filter(cmd_ops, file, filter, trigger_data);
@@ -6591,6 +6591,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
event_trigger_unregister(cmd_ops, file, glob+1, trigger_data);
out_free:
event_trigger_reset_filter(cmd_ops, trigger_data);
+ out_hist_data:
remove_hist_vars(hist_data);
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] fix NULL dereference in event_trigger_reset_filter()
@ 2026-07-13 14:50 Alexander Konyukhov
2026-07-13 15:38 ` Steven Rostedt
0 siblings, 1 reply; 3+ messages in thread
From: Alexander Konyukhov @ 2026-07-13 14:50 UTC (permalink / raw)
To: rostedt, mhiramat; +Cc: linux-kernel, lvc-project, Alexander Konyukhov
Fixes a null pointer dereference in the trace events subsystem.
When trigger_data_alloc() returns NULL, the original code jumps to out_free,
invoking event_trigger_reset_filter() with a NULL pointer.
This propagates through set_trigger_filter() and dereferences data->filter_str
with data == NULL in trace_events_trigger.c.
The patch adds out_hist_data, rerouting allocation failures to skip
event_trigger_reset_filter() on NULL and clean up via remove_hist_vars(hist_data).
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 4b147936fa50 ("tracing: Add support for 'synthetic' events")
Signed-off-by: Alexander Konyukhov <Alexander.Konyukhov@kaspersky.com>
---
kernel/trace/trace_events_hist.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 336fc54d8ec8..9d203ab56fac 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -6525,7 +6525,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
trigger_data = trigger_data_alloc(cmd_ops, cmd, param, hist_data);
if (!trigger_data) {
ret = -ENOMEM;
- goto out_free;
+ goto out_hist_data;
}
ret = event_trigger_set_filter(cmd_ops, file, filter, trigger_data);
@@ -6591,6 +6591,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
event_trigger_unregister(cmd_ops, file, glob+1, trigger_data);
out_free:
event_trigger_reset_filter(cmd_ops, trigger_data);
+ out_hist_data:
remove_hist_vars(hist_data);
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] fix NULL dereference in event_trigger_reset_filter()
2026-07-13 14:50 [PATCH] fix NULL dereference in event_trigger_reset_filter() Alexander Konyukhov
@ 2026-07-13 15:38 ` Steven Rostedt
0 siblings, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2026-07-13 15:38 UTC (permalink / raw)
To: Alexander Konyukhov; +Cc: mhiramat, linux-kernel, lvc-project
On Mon, 13 Jul 2026 17:50:54 +0300
Alexander Konyukhov <Alexander.Konyukhov@kaspersky.com> wrote:
> Fixes a null pointer dereference in the trace events subsystem.
> When trigger_data_alloc() returns NULL, the original code jumps to out_free,
> invoking event_trigger_reset_filter() with a NULL pointer.
> This propagates through set_trigger_filter() and dereferences data->filter_str
> with data == NULL in trace_events_trigger.c.
>
> The patch adds out_hist_data, rerouting allocation failures to skip
> event_trigger_reset_filter() on NULL and clean up via remove_hist_vars(hist_data).
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
What kernel are you using?
>
> Fixes: 4b147936fa50 ("tracing: Add support for 'synthetic' events")
> Signed-off-by: Alexander Konyukhov <Alexander.Konyukhov@kaspersky.com>
> ---
> kernel/trace/trace_events_hist.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> index 336fc54d8ec8..9d203ab56fac 100644
> --- a/kernel/trace/trace_events_hist.c
> +++ b/kernel/trace/trace_events_hist.c
> @@ -6525,7 +6525,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
> trigger_data = trigger_data_alloc(cmd_ops, cmd, param, hist_data);
> if (!trigger_data) {
> ret = -ENOMEM;
> - goto out_free;
> + goto out_hist_data;
> }
>
> ret = event_trigger_set_filter(cmd_ops, file, filter, trigger_data);
> @@ -6591,6 +6591,7 @@ static int event_hist_trigger_parse(struct event_command *cmd_ops,
> event_trigger_unregister(cmd_ops, file, glob+1, trigger_data);
> out_free:
> event_trigger_reset_filter(cmd_ops, trigger_data);
The above has been removed by commit a4e0ea0e10a2 ("tracing: Remove
redundant call to event_trigger_reset_filter() in event_hist_trigger_parse()")
-- Steve
> + out_hist_data:
>
> remove_hist_vars(hist_data);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-13 15:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-13 14:50 [PATCH] fix NULL dereference in event_trigger_reset_filter() Alexander Konyukhov
2026-07-13 15:38 ` Steven Rostedt
-- strict thread matches above, loose matches on Subject: below --
2026-07-13 14:36 Alexander Konyukhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox