summaryrefslogtreecommitdiffstats
path: root/sys/dev/vt
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2015-05-10 17:11:04 +0000
committerhselasky <hselasky@FreeBSD.org>2015-05-10 17:11:04 +0000
commitcf94a1d327f2e4882633576d43e3e8ce30c8dae3 (patch)
tree57d145f1891ee023b6511884371dcbc480fd0488 /sys/dev/vt
parent8ae6fa0eb6d5fbd0626127be3f6d2cd2b3d604f6 (diff)
downloadFreeBSD-src-cf94a1d327f2e4882633576d43e3e8ce30c8dae3.zip
FreeBSD-src-cf94a1d327f2e4882633576d43e3e8ce30c8dae3.tar.gz
Ensure the result from signed subtraction under modulus does not
become negative. Submitted by: Oliver Pinter <oliver.pinter@hardenedbsd.org> MFC after: 3 days
Diffstat (limited to 'sys/dev/vt')
-rw-r--r--sys/dev/vt/vt_core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
index e6603a9..ecd5267 100644
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -785,7 +785,7 @@ vt_processkey(keyboard_t *kbd, struct vt_device *vd, int c)
return (0);
case PREV:
/* Switch to previous VT. */
- c = (vw->vw_number - 1) % VT_MAXWINDOWS;
+ c = (vw->vw_number + VT_MAXWINDOWS - 1) % VT_MAXWINDOWS;
vw = vd->vd_windows[c];
vt_proc_window_switch(vw);
return (0);
OpenPOWER on IntegriCloud