* [PATCH] perf - ensure offset provided during probe addition is not greater than function size when no DWARF info
[not found] <4F4C53C7.2080904@linux.vnet.ibm.com>
@ 2012-02-28 4:13 ` Prashanth Nageshappa
2012-03-02 9:52 ` [tip:perf/urgent] perf probe: Ensure offset provided is not greater than function length without DWARF info too tip-bot for Prashanth Nageshappa
0 siblings, 1 reply; 2+ messages in thread
From: Prashanth Nageshappa @ 2012-02-28 4:13 UTC (permalink / raw)
To: masami.hiramatsu.pt, ananth, akpm, linux-kernel, acme
Cc: jbaron, rostedt, srikar
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;
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [tip:perf/urgent] perf probe: Ensure offset provided is not greater than function length without DWARF info too
2012-02-28 4:13 ` [PATCH] perf - ensure offset provided during probe addition is not greater than function size when no DWARF info Prashanth Nageshappa
@ 2012-03-02 9:52 ` tip-bot for Prashanth Nageshappa
0 siblings, 0 replies; 2+ messages in thread
From: tip-bot for Prashanth Nageshappa @ 2012-03-02 9:52 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, hpa, mingo, prashanth, ananth,
masami.hiramatsu.pt, rostedt, akpm, srikar, tglx, jbaron
Commit-ID: 1c1bc9223387dacc48eb2b61b0baabe7e9cf47f6
Gitweb: http://git.kernel.org/tip/1c1bc9223387dacc48eb2b61b0baabe7e9cf47f6
Author: Prashanth Nageshappa <prashanth@linux.vnet.ibm.com>
AuthorDate: Tue, 28 Feb 2012 09:43:01 +0530
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Wed, 29 Feb 2012 18:29:46 -0300
perf probe: Ensure offset provided is not greater than function length without DWARF info too
The 'perf probe' command 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.
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/4F4C544D.1010909@linux.vnet.ibm.com
Signed-off-by: Prashanth Nageshappa <prashanth@linux.vnet.ibm.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.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 29cb654..e33554a 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -1867,6 +1867,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;
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-03-02 9:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <4F4C53C7.2080904@linux.vnet.ibm.com>
2012-02-28 4:13 ` [PATCH] perf - ensure offset provided during probe addition is not greater than function size when no DWARF info Prashanth Nageshappa
2012-03-02 9:52 ` [tip:perf/urgent] perf probe: Ensure offset provided is not greater than function length without DWARF info too tip-bot for Prashanth Nageshappa
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.