perf probe: Check group string length
authorLeo Yan <leo.yan@arm.com>
Sat, 12 Oct 2024 20:47:24 +0000 (21:47 +0100)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 17 Oct 2024 16:55:58 +0000 (09:55 -0700)
In the kernel, the probe group string length is limited up to
MAX_EVENT_NAME_LEN (including the NULL terminator).

Check for this limitation and report an error if it is exceeded.

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Link: https://lore.kernel.org/r/20241012204725.928794-3-leo.yan@arm.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/probe-event.c

index 83b5744da50c5e7ba4497db2cf86e8381b6deea0..2903341a430988de1b0b8cc5d741e32472b0d123 100644 (file)
@@ -2868,6 +2868,12 @@ static int probe_trace_event__set_name(struct probe_trace_event *tev,
        else
                group = PERFPROBE_GROUP;
 
+       if (strlen(group) >= MAX_EVENT_NAME_LEN) {
+               pr_err("Probe group string='%s' is too long (>= %d bytes)\n",
+                       group, MAX_EVENT_NAME_LEN);
+               return -ENOMEM;
+       }
+
        /* Get an unused new event name */
        ret = get_new_event_name(buf, sizeof(buf), event, namelist,
                                 tev->point.retprobe, allow_suffix);