From: Petr Mladek <pmladek@suse.com>
To: Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
Jiri Kosina <jkosina@suse.cz>,
linux-kernel@vger.kernel.org, x86@kernel.org,
Petr Mladek <pmladek@suse.com>
Subject: [PATCH 2/4] ftrace/x86: Do not crash when reading wrong ftrace func
Date: Mon, 27 Jun 2016 15:54:35 +0200 [thread overview]
Message-ID: <1467035677-12193-3-git-send-email-pmladek@suse.com> (raw)
In-Reply-To: <1467035677-12193-1-git-send-email-pmladek@suse.com>
Ftrace modifies the code on many locations. It is paranoid
and avoid a kernel crash using probe_kernel_read() and
probe_kernel_write(). The only exception is update_ftrace_func()
where where we read the old code using memcpy().
It is true that this function is used only to modify well
defined functions that are part of the ftrace API. But
it might still make sense to be paranoid and be consistent
with the writing side.
Signed-off-by: Petr Mladek <pmladek@suse.com>
---
arch/x86/kernel/ftrace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 42ea69d35dfd..8305c6792ad2 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -233,7 +233,8 @@ static int update_ftrace_func(unsigned long ip, void *new)
unsigned char old[MCOUNT_INSN_SIZE];
int ret;
- memcpy(old, (void *)ip, MCOUNT_INSN_SIZE);
+ if (probe_kernel_read(old, (void *)ip, MCOUNT_INSN_SIZE))
+ return -EFAULT;
/*
* Make sure that we replace 5-byte instruction that
--
1.8.5.6
next prev parent reply other threads:[~2016-06-27 13:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-27 13:54 [PATCH 0/4] ftrace: One more check on x86 and some small fixes Petr Mladek
2016-06-27 13:54 ` [PATCH 1/4] ftrace/x86: Make sure to modify 5-bite instructions Petr Mladek
2016-06-27 13:54 ` Petr Mladek [this message]
2016-06-27 14:48 ` [PATCH 2/4] ftrace/x86: Do not crash when reading wrong ftrace func Steven Rostedt
2016-06-28 10:00 ` Petr Mladek
2016-06-27 13:54 ` [PATCH 3/4] ftrace: Always destroy trampoline when shutting down the trace Petr Mladek
2016-06-27 13:54 ` [PATCH 4/4] ftrace: Fixup trace_selftest_ops() Petr Mladek
2016-06-28 5:22 ` [PATCH 0/4] ftrace: One more check on x86 and some small fixes Namhyung Kim
2016-06-28 19:17 ` Steven Rostedt
2016-06-29 8:22 ` Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1467035677-12193-3-git-send-email-pmladek@suse.com \
--to=pmladek@suse.com \
--cc=fweisbec@gmail.com \
--cc=jkosina@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®