summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormickey <mickey@openbsd.org>2001-10-30 05:15:37 +0000
committermickey <mickey@openbsd.org>2001-10-30 05:15:37 +0000
commit00ec4190ad0a156874c49e8f89b816b60be2c47a (patch)
treeae8ff326669ec6452974d0181ea4535dc56ef68a
parentvipw(8) invokes pwd_mkdb(8) automagically. (diff)
downloadwireguard-openbsd-00ec4190ad0a156874c49e8f89b816b60be2c47a.tar.xz
wireguard-openbsd-00ec4190ad0a156874c49e8f89b816b60be2c47a.zip
do not allow setting autorepeat delays causing zero timeouts later.
pointed out for the case of del*=0 in pr@2156 by Juan Vera <juan@coredump.com.ar>.
-rw-r--r--sys/dev/wscons/wskbd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/wscons/wskbd.c b/sys/dev/wscons/wskbd.c
index accd8e064f5..28859003267 100644
--- a/sys/dev/wscons/wskbd.c
+++ b/sys/dev/wscons/wskbd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: wskbd.c,v 1.27 2001/10/25 14:30:43 drahn Exp $ */
+/* $OpenBSD: wskbd.c,v 1.28 2001/10/30 05:15:37 mickey Exp $ */
/* $NetBSD: wskbd.c,v 1.38 2000/03/23 07:01:47 thorpej Exp $ */
/*
@@ -966,6 +966,11 @@ getbell:
kkdp = &sc->sc_keyrepeat_data;
setkeyrepeat:
ukdp = (struct wskbd_keyrepeat_data *)data;
+ if ((ukdp->which & WSKBD_KEYREPEAT_DODEL1 &&
+ (hz * ukdp->del1) / 1000 <= 0) ||
+ (ukdp->which & WSKBD_KEYREPEAT_DODELN &&
+ (hz * ukdp->delN) / 1000 <= 0))
+ return (EINVAL);
SETKEYREPEAT(kkdp, ukdp, kkdp);
return (0);