]> exis.tech > repos - linux.git/commitdiff
tracing/eprobe: Fix exact system name matching in eprobe_dyn_event_match()
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Mon, 20 Jul 2026 10:12:38 +0000 (19:12 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Tue, 21 Jul 2026 01:23:21 +0000 (10:23 +0900)
eprobe_dyn_event_match() checks if the target event system in argv[0]
matches ep->event_system using strncmp(ep->event_system, argv[0], len).
However, if ep->event_system is longer than len (e.g. "eprobes" vs
"ep/event"), strncmp() still returns 0 because the first len characters
match.

Check that ep->event_system[len] is '\0' to ensure exact system name
matching.

Link: https://lore.kernel.org/all/178454235856.290363.14872590900774231133.stgit@devnote2/
Fixes: 7d5fda1c841f ("tracing: Fix event probe removal from dynamic events")
Cc: stable@vger.kernel.org
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/trace_eprobe.c

index 50518b07141441f6db2b1ab67cb561ba638e0977..bcd97cb24ac911c2ce2c1793522da5dbc86b2491 100644 (file)
@@ -172,7 +172,8 @@ static bool eprobe_dyn_event_match(const char *system, const char *event,
        if (!slash)
                return false;
 
-       if (strncmp(ep->event_system, argv[0], slash - argv[0]))
+       if (strncmp(ep->event_system, argv[0], slash - argv[0]) ||
+           ep->event_system[slash - argv[0]] != '\0')
                return false;
        if (strcmp(ep->event_name, slash + 1))
                return false;