diff options
| author | Jacques Vidrine <nectar@FreeBSD.org> | 2004-09-30 17:49:15 +0000 |
|---|---|---|
| committer | Jacques Vidrine <nectar@FreeBSD.org> | 2004-09-30 17:49:15 +0000 |
| commit | ae105f029cc528907ef273282bbe425fa7517d95 (patch) | |
| tree | 121c613995efc5a61101d0eef6dc88c4c2e11609 /sys/dev | |
| parent | 7d5d9d24e259227a07b6d0934c968390af256856 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/syscons/syscons.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index c24995d2dff9..d5f76e527c10 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -854,14 +854,16 @@ scioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) scrshot_t *ptr = (scrshot_t *)data; void *outp = ptr->buf; + if (ptr->x < 0 || ptr->y < 0 || ptr->xsize < 0 || ptr->ysize < 0) + return EINVAL; s = spltty(); if (ISGRAPHSC(scp)) { splx(s); return EOPNOTSUPP; } hist_rsz = (scp->history != NULL) ? scp->history->vtb_rows : 0; - if ((ptr->x + ptr->xsize) > scp->xsize || - (ptr->y + ptr->ysize) > (scp->ysize + hist_rsz)) { + if (((u_int)ptr->x + ptr->xsize) > scp->xsize || + ((u_int)ptr->y + ptr->ysize) > (scp->ysize + hist_rsz)) { splx(s); return EINVAL; } |
