aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/vt/vt_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/vt/vt_core.c')
-rw-r--r--sys/dev/vt/vt_core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
index 50f12512a81c..547bee8be86a 100644
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -41,6 +41,7 @@
#include <sys/kbio.h>
#include <sys/kdb.h>
#include <sys/kernel.h>
+#include <sys/limits.h>
#include <sys/linker.h>
#include <sys/lock.h>
#include <sys/malloc.h>
@@ -2771,8 +2772,9 @@ skip_thunk:
/* XXX */
return (0);
case CONS_HISTORY:
- if (*(int *)data < 0)
- return EINVAL;
+ if (*(int *)data < 0 ||
+ *(int *)data > UINT_MAX / USHRT_MAX / sizeof(term_char_t))
+ return (EINVAL);
if (*(int *)data != vw->vw_buf.vb_history_size)
vtbuf_sethistory_size(&vw->vw_buf, *(int *)data);
return (0);