linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] livepatch: x86: bugfix about kASLR
@ 2015-11-04  9:32 Zhou Chengming
  2015-11-04  9:44 ` Jiri Kosina
  2015-11-04 12:27 ` Cyril B.
  0 siblings, 2 replies; 4+ messages in thread
From: Zhou Chengming @ 2015-11-04  9:32 UTC (permalink / raw)
  To: jpoimboe, sjenning, jkosina, vojtech
  Cc: live-patching, linux-kernel, guohanjun, huawei.libin, xiexiuqi, cbay

When enable KASLR, func->old_addr will be set to zero
and livepatch will find the right old address.
But for reloc, livepatch just verify it using reloc->val
(old addr from user), so verify failed and report
"kernel mismatch" error.

Reported-by: Cyril B. <cbay@alwaysdata.com>
Signed-off-by: Zhou Chengming <zhouchengming1@huawei.com>
---
 kernel/livepatch/core.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
index 53196e2..c8885c6 100644
--- a/kernel/livepatch/core.c
+++ b/kernel/livepatch/core.c
@@ -311,7 +311,12 @@ static int klp_write_object_relocations(struct module *pmod,
 		return -EINVAL;
 
 	for (reloc = obj->relocs; reloc->name; reloc++) {
-		if (!klp_is_module(obj)) {
+
+#if defined(CONFIG_RANDOMIZE_BASE)
+		/* KASLR is enabled, disregard old_addr from user */
+		reloc->val = 0;
+#endif
+		if (reloc->val && !klp_is_module(obj)) {
 			ret = klp_verify_vmlinux_symbol(reloc->name,
 							reloc->val);
 			if (ret)
-- 
1.7.7


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-11-04 16:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-04  9:32 [PATCH] livepatch: x86: bugfix about kASLR Zhou Chengming
2015-11-04  9:44 ` Jiri Kosina
2015-11-04 10:05   ` zhouchengming
2015-11-04 12:27 ` Cyril B.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).