diff options
author | Jan H. Schönherr <jschoenh@amazon.de> | 2017-08-27 20:23:43 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-08-29 13:32:50 +0200 |
commit | fb1cc2f91664fd8a2e454970480b5413725919f1 (patch) | |
tree | fce72809a3f0b6248af9f98c0f98323163ef0b86 /arch/x86/boot/compressed | |
parent | 5746f0555d00e1cbb7bc20a2fd09041ace6f350c (diff) | |
download | op-kernel-dev-fb1cc2f91664fd8a2e454970480b5413725919f1.zip op-kernel-dev-fb1cc2f91664fd8a2e454970480b5413725919f1.tar.gz |
x86/boot: Prevent faulty bootparams.screeninfo from causing harm
If a zero for the number of lines manages to slip through, scroll()
may underflow some offset calculations, causing accesses outside the
video memory.
Make the check in __putstr() more pessimistic to prevent that.
Signed-off-by: Jan H. Schönherr <jschoenh@amazon.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1503858223-14983-1-git-send-email-jschoenh@amazon.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/boot/compressed')
-rw-r--r-- | arch/x86/boot/compressed/misc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index a0838ab..c14217c 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c @@ -116,8 +116,7 @@ void __putstr(const char *s) } } - if (boot_params->screen_info.orig_video_mode == 0 && - lines == 0 && cols == 0) + if (lines == 0 || cols == 0) return; x = boot_params->screen_info.orig_x; |