diff options
author | delphij <delphij@FreeBSD.org> | 2015-02-25 05:56:16 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2015-02-25 05:56:16 +0000 |
commit | b69ba8fe10a0df78165b9e34091ed7cadb989de2 (patch) | |
tree | 0d1cd5f4c2b24bd9f8b8387ba6ad41aeb8b5d8e4 /sys/dev | |
parent | 02d2873b419d69120c7ee1b98d152a5c0931f043 (diff) | |
download | FreeBSD-src-b69ba8fe10a0df78165b9e34091ed7cadb989de2.zip FreeBSD-src-b69ba8fe10a0df78165b9e34091ed7cadb989de2.tar.gz |
Fix integer overflow in IGMP protocol. [SA-15:04]
Fix vt(4) crash with improper ioctl parameters. [EN-15:01]
Updated base system OpenSSL to 1.0.1l. [EN-15:02]
Fix freebsd-update libraries update ordering issue. [EN-15:03]
Approved by: so
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/vt/vt_core.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c index 0ad06dd..cacba7f 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -2340,20 +2340,23 @@ skip_thunk: } VT_UNLOCK(vd); return (EINVAL); - case VT_WAITACTIVE: + case VT_WAITACTIVE: { + unsigned int idx; + error = 0; - i = *(unsigned int *)data; - if (i > VT_MAXWINDOWS) + idx = *(unsigned int *)data; + if (idx > VT_MAXWINDOWS) return (EINVAL); - if (i != 0) - vw = vd->vd_windows[i - 1]; + if (idx > 0) + vw = vd->vd_windows[idx - 1]; VT_LOCK(vd); while (vd->vd_curwindow != vw && error == 0) error = cv_wait_sig(&vd->vd_winswitch, &vd->vd_lock); VT_UNLOCK(vd); return (error); + } case VT_SETMODE: { /* set screen switcher mode */ struct vt_mode *mode; struct proc *p1; |