From: Steven Rostedt <rostedt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: "Masami Hiramatsu" <mhiramat@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Mathieu Desnoyers" <mathieu.desnoyers@efficios.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Subject: [for-next][PATCH 04/18] tracing: Stop modifying the input buffer in ftrace_set_clr_event()
Date: Fri, 16 Oct 2026 10:31:19 -0400 [thread overview]
Message-ID: <20261016143134.889926244@kernel.org> (raw)
In-Reply-To: <20261016143115.392980228@kernel.org>
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas.weissschuh@linutronix.de>
ftrace_set_clr_event() modifies its input buffer during parsing.
Before returning to the caller these modifications are undone.
This is restoration is error prone and was forgotten before.
Upcoming changes will also make it more complicated.
Copy the input argument and modify that copy and drop the
restoration logic.
Also mark the input argument as const.
Link: https://patch.msgid.link/20260908-tracing-cli-event-filter-v2-3-05396a3fb663@linutronix.de
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/linux/trace_events.h | 2 +-
kernel/trace/trace_events.c | 19 ++++++++-----------
2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h
index d0259a515a83..8a396ae51fef 100644
--- a/include/linux/trace_events.h
+++ b/include/linux/trace_events.h
@@ -883,7 +883,7 @@ extern int trace_add_event_call(struct trace_event_call *call);
extern int trace_remove_event_call(struct trace_event_call *call);
extern int trace_event_get_offsets(struct trace_event_call *call);
-int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set);
+int ftrace_set_clr_event(struct trace_array *tr, const char *buf, int set);
int trace_set_clr_event(const char *system, const char *event, int set);
int trace_array_set_clr_event(struct trace_array *tr, const char *system,
const char *event, bool enable);
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 1bd227282729..de964dd2878b 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -1443,14 +1443,19 @@ static int __ftrace_set_clr_event(struct trace_array *tr, const char *match,
return ret;
}
-int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
+int ftrace_set_clr_event(struct trace_array *tr, const char *arg_buf, int set)
{
char *event = NULL, *sub = NULL, *match, *mod;
- int ret;
+ char *buf;
if (!tr)
return -ENOENT;
+ char *dupped_buf __free(kfree) = kstrdup(arg_buf, GFP_KERNEL);
+ if (!dupped_buf)
+ return -ENOMEM;
+ buf = dupped_buf;
+
/* Modules events can be appended with :mod:<module> */
mod = strstr(buf, ":mod:");
if (mod) {
@@ -1487,15 +1492,7 @@ int ftrace_set_clr_event(struct trace_array *tr, char *buf, int set)
match = NULL;
}
- ret = __ftrace_set_clr_event(tr, match, sub, event, set, mod);
-
- /* Put back the colon to allow this to be called again */
- if (buf)
- *(buf - 1) = ':';
- if (mod)
- *(mod - 5) = ':';
-
- return ret;
+ return __ftrace_set_clr_event(tr, match, sub, event, set, mod);
}
/**
--
2.53.0
next prev parent reply other threads:[~2026-10-16 14:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-16 14:31 [for-next][PATCH 00/18] tracing: Updates for 7.4 Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 01/18] tracing: Add "within" filter for call-stack-based event filtering Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 02/18] tracnig: Add proper error message for glob use with "within" filter Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 03/18] tracing: Remove duplicate declaration of ftrace_set_clr_event() Steven Rostedt
2026-10-16 14:31 ` Steven Rostedt [this message]
2026-10-16 14:31 ` [for-next][PATCH 05/18] tracing: Split the event string parsing logic into a dedicated function Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 06/18] tracing: Add a test for ftrace_parse_event_string() Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 07/18] tracing: Add a filter argument to __ftrace_set_clr_event() Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 08/18] tracing: Parse filter from boot event string Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 09/18] ring-buffer: Rename ring_buffer_size() to ring_buffer_capacity() Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 10/18] tracing: Rename trace_array::entries to capacity Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 11/18] tracing: Rename tracing_entries_fops to tracing_capacity_fops Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 12/18] tracing: Print the bucket size as unsigned Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 13/18] tracing: Add the bucket size to expr_field_str() Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 14/18] tracing: Only report the stacktrace modifier on a real field Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 15/18] tracing: Unregister field variable histograms when the command fails Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 16/18] tracing: Clamp the printed end of a histogram bucket at U64_MAX Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 17/18] tracing: Fix 64-bit and signed histogram fields on 32-bit kernels Steven Rostedt
2026-10-16 14:31 ` [for-next][PATCH 18/18] tracing: Print a signed histogram key as signed Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261016143134.889926244@kernel.org \
--to=rostedt@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=thomas.weissschuh@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®