vcsa: clamp header values when they don't fit
The /dev/vcsa* devices have a fixed char-sized header that stores the screen geometry and cursor location. Let's make sure it doesn't contain random garbage when those values exceed 255. If ever it becomes necessary to convey larger screen info to user space then a larger header in the not-yet-implemented /dev/vcsua* devices should be considered. Signed-off-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
a5db482640
commit
8a08549431
@@ -335,8 +335,9 @@ vcs_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
|
||||
if (p < HEADER_SIZE) {
|
||||
size_t tmp_count;
|
||||
|
||||
con_buf0[0] = (char)vc->vc_rows;
|
||||
con_buf0[1] = (char)vc->vc_cols;
|
||||
/* clamp header values if they don't fit */
|
||||
con_buf0[0] = min(vc->vc_rows, 0xFFu);
|
||||
con_buf0[1] = min(vc->vc_cols, 0xFFu);
|
||||
getconsxy(vc, con_buf0 + 2);
|
||||
|
||||
con_buf_start += p;
|
||||
|
Reference in New Issue
Block a user