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 <jscho...@amazon.de>
---
 arch/x86/boot/compressed/misc.c | 3 +--
 1 file changed, 1 insertion(+), 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;
-- 
2.3.1.dirty

Reply via email to