doc/share/security/patches/EN-15:01/vt.patch

34 lines
877 B
Diff

Index: sys/dev/vt/vt_core.c
===================================================================
--- sys/dev/vt/vt_core.c (revision 278106)
+++ sys/dev/vt/vt_core.c (working copy)
@@ -1719,14 +1719,16 @@ 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)
@@ -1733,6 +1735,7 @@ skip_thunk:
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;