summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan H. Schönherr <jschoenh@amazon.de>2017-09-04 16:00:50 +0200
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2017-09-04 16:00:50 +0200
commitb9a58de545858ac9ee67745cdea6d94cc322938e (patch)
tree3bffbb1a4cad0c988e36620e9934421bb031d6c5
parentvideo: fbdev: make fb_videomode const (diff)
downloadlinux-b9a58de545858ac9ee67745cdea6d94cc322938e.tar.xz
linux-b9a58de545858ac9ee67745cdea6d94cc322938e.zip
vgacon: Prevent faulty bootparams.screeninfo from causing harm
If a zero for the number of colums or rows manages to slip through, gotoxy() will underflow vc->vc_pos, causing the next action on the referenced memory to end with a page fault. Make the check in vgacon_startup() more pessimistic to prevent that. Signed-off-by: Jan H. Schönherr <jschoenh@amazon.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
-rw-r--r--drivers/video/console/vgacon.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index dc06cb6a15dc..445b1dc5d441 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -398,9 +398,8 @@ static const char *vgacon_startup(void)
#endif
}
- /* boot_params.screen_info initialized? */
- if ((screen_info.orig_video_mode == 0) &&
- (screen_info.orig_video_lines == 0) &&
+ /* boot_params.screen_info reasonably initialized? */
+ if ((screen_info.orig_video_lines == 0) ||
(screen_info.orig_video_cols == 0))
goto no_vga;