[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4F4C544D.1010909@linux.vnet.ibm.com>
Date: Tue, 28 Feb 2012 09:43:01 +0530
From: Prashanth Nageshappa <prashanth@...ux.vnet.ibm.com>
To: masami.hiramatsu.pt@...achi.com, ananth@...ibm.com,
akpm@...ux-foundation.org, linux-kernel@...r.kernel.org,
acme@...radead.org
CC: jbaron@...hat.com, rostedt@...dmis.org, srikar@...ux.vnet.ibm.com
Subject: [PATCH] perf - ensure offset provided during probe addition is not
greater than function size when no DWARF info
perf probe allows kprobe to be inserted at any offset from a function
start, which results in adding kprobes to unintended location.
(example: perf probe do_fork+10000 is allowed even though size of
do_fork is ~904).
My previous patch https://lkml.org/lkml/2012/2/24/42 addressed the case
where DWARF info was available for the kernel. This patch fixes the
case where perf probe is used on a kernel without debuginfo available.
Signed-off-by: Prashanth Nageshappa <prashanth@...ux.vnet.ibm.com>
---
tools/perf/util/probe-event.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index f121d5d..9f9b1a2 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -1966,6 +1966,12 @@ static int convert_to_probe_trace_events(struct perf_probe_event *pev,
tev->point.symbol);
ret = -ENOENT;
goto error;
+ } else if (tev->point.offset > sym->end - sym->start) {
+ pr_warning("Offset specified is greater than size of %s\n",
+ tev->point.symbol);
+ ret = -ENOENT;
+ goto error;
+
}
return 1;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists