Messages in this thread Patch in this message | | | Date | Tue, 28 Feb 2012 09:43:01 +0530 | From | Prashanth Nageshappa <> | 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@linux.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;
| |