[<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
 
