From: Kees Cook <keescook@chromium.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: Kees Cook <keescook@chromium.org>,
Yinghai Lu <yinghai@kernel.org>, Baoquan He <bhe@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
x86@kernel.org, Andrew Morton <akpm@linux-foundation.org>,
Andrey Ryabinin <aryabinin@virtuozzo.com>,
Dmitry Vyukov <dvyukov@google.com>,
"H.J. Lu" <hjl.tools@gmail.com>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Borislav Petkov <bp@suse.de>, Andy Lutomirski <luto@kernel.org>,
linux-kernel@vger.kernel.org
Subject: [PATCH 5/5] x86, KASLR: Warn when KASLR is disabled
Date: Wed, 20 Apr 2016 13:55:46 -0700 [thread overview]
Message-ID: <1461185746-8017-6-git-send-email-keescook@chromium.org> (raw)
In-Reply-To: <1461185746-8017-1-git-send-email-keescook@chromium.org>
If KASLR is built in but not available at run-time (either due to the
current conflict with hibernation, command-line request, or e820 parsing
failures), announce the state explicitly. To support this, a new "warn"
function is created, based on the existing "error" function.
Suggested-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
---
arch/x86/boot/compressed/kaslr.c | 6 +++---
arch/x86/boot/compressed/misc.c | 12 +++++++++---
arch/x86/boot/compressed/misc.h | 1 +
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
index 3ad71a0afa24..8741a6d83bfe 100644
--- a/arch/x86/boot/compressed/kaslr.c
+++ b/arch/x86/boot/compressed/kaslr.c
@@ -314,12 +314,12 @@ unsigned char *choose_random_location(unsigned char *input,
#ifdef CONFIG_HIBERNATION
if (!cmdline_find_option_bool("kaslr")) {
- debug_putstr("KASLR disabled by default...\n");
+ warn("KASLR disabled: 'kaslr' not on cmdline (hibernation selected).");
goto out;
}
#else
if (cmdline_find_option_bool("nokaslr")) {
- debug_putstr("KASLR disabled by cmdline...\n");
+ warn("KASLR disabled: 'nokaslr' on cmdline.");
goto out;
}
#endif
@@ -333,7 +333,7 @@ unsigned char *choose_random_location(unsigned char *input,
/* Walk e820 and find a random address. */
random_addr = find_random_addr(choice, output_size);
if (!random_addr) {
- debug_putstr("KASLR could not find suitable E820 region...\n");
+ warn("KASLR disabled: could not find suitable E820 region!");
goto out;
}
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index eacc855ae08e..c57d785ff955 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -166,11 +166,17 @@ void __puthex(unsigned long value)
}
}
-static void error(char *x)
+void warn(char *m)
{
error_putstr("\n\n");
- error_putstr(x);
- error_putstr("\n\n -- System halted");
+ error_putstr(m);
+ error_putstr("\n\n");
+}
+
+static void error(char *m)
+{
+ warn(m);
+ error_putstr(" -- System halted");
while (1)
asm("hlt");
diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
index 9887e0d4aaeb..e75f6cf9caaf 100644
--- a/arch/x86/boot/compressed/misc.h
+++ b/arch/x86/boot/compressed/misc.h
@@ -35,6 +35,7 @@ extern memptr free_mem_end_ptr;
extern struct boot_params *boot_params;
void __putstr(const char *s);
void __puthex(unsigned long value);
+void warn(char *m);
#define error_putstr(__x) __putstr(__x)
#define error_puthex(__x) __puthex(__x)
--
2.6.3
next prev parent reply other threads:[~2016-04-20 20:56 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-20 20:55 [PATCH 0/5] x86, boot: clean up KASLR code (step 2) Kees Cook
2016-04-20 20:55 ` [PATCH 1/5] x86, KASLR: Update description for decompressor worst case size Kees Cook
2016-04-21 14:47 ` Borislav Petkov
2016-04-21 20:04 ` Kees Cook
2016-04-22 3:13 ` Baoquan He
2016-04-22 7:41 ` Ingo Molnar
2016-04-22 9:45 ` [tip:x86/boot] x86/KASLR: " tip-bot for Baoquan He
2016-04-20 20:55 ` [PATCH 2/5] x86, KASLR: Drop CONFIG_RANDOMIZE_BASE_MAX_OFFSET Kees Cook
2016-04-21 17:44 ` Borislav Petkov
2016-04-21 18:13 ` Kees Cook
2016-04-22 7:16 ` Ingo Molnar
2016-04-22 9:43 ` Borislav Petkov
2016-04-22 9:45 ` [tip:x86/boot] x86/KASLR: " tip-bot for Baoquan He
2016-04-20 20:55 ` [PATCH 3/5] x86, boot: Clean up things used by decompressors Kees Cook
2016-04-22 9:46 ` [tip:x86/boot] x86/boot: " tip-bot for Kees Cook
2016-04-20 20:55 ` [PATCH 4/5] x86, boot: Make memcpy handle overlaps Kees Cook
2016-04-22 7:49 ` Ingo Molnar
2016-04-22 22:18 ` Kees Cook
2016-04-22 7:56 ` Ingo Molnar
2016-04-22 9:46 ` [tip:x86/boot] x86/boot: Make memcpy() " tip-bot for Kees Cook
2016-04-22 21:05 ` Lasse Collin
2016-04-22 22:01 ` Kees Cook
2016-04-20 20:55 ` Kees Cook [this message]
2016-04-22 9:47 ` [tip:x86/boot] x86/KASLR: Warn when KASLR is disabled tip-bot for Kees Cook
2016-04-22 7:43 ` [PATCH 0/5] x86, boot: clean up KASLR code (step 2) Ingo Molnar
2016-04-22 15:39 ` Kees Cook
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=1461185746-8017-6-git-send-email-keescook@chromium.org \
--to=keescook@chromium.org \
--cc=akpm@linux-foundation.org \
--cc=aryabinin@virtuozzo.com \
--cc=bhe@redhat.com \
--cc=bp@suse.de \
--cc=dvyukov@google.com \
--cc=hjl.tools@gmail.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=x86@kernel.org \
--cc=yinghai@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®