diff options
author | Jan H. Schönherr <jschoenh@amazon.de> | 2017-09-04 16:00:50 +0200 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> | 2017-09-04 16:00:50 +0200 |
commit | b9a58de545858ac9ee67745cdea6d94cc322938e (patch) | |
tree | 3bffbb1a4cad0c988e36620e9934421bb031d6c5 /drivers/video/console/vgacon.c | |
parent | video: fbdev: make fb_videomode const (diff) | |
download | linux-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>
Diffstat (limited to 'drivers/video/console/vgacon.c')
-rw-r--r-- | drivers/video/console/vgacon.c | 5 |
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; |