summaryrefslogtreecommitdiff
path: root/sys/dev/isa/spkr.c
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2000-09-29 23:23:39 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2000-09-29 23:23:39 +0000
commiteba3d9a8c3da2513a04cfb6a6affc065435a25da (patch)
treee1e3dbe90c319cf4e66201c653e89c55a4300d80 /sys/dev/isa/spkr.c
parenta692161ae748144f544a50e572a406369c34606a (diff)
Check N command operand value to prevent a panic with large values.
Problem found by Thomas Coffy <karma@bsdfr.org>
Diffstat (limited to 'sys/dev/isa/spkr.c')
-rw-r--r--sys/dev/isa/spkr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/isa/spkr.c b/sys/dev/isa/spkr.c
index d1d28e6aad6..7d09e5b4914 100644
--- a/sys/dev/isa/spkr.c
+++ b/sys/dev/isa/spkr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: spkr.c,v 1.2 1999/01/02 00:58:12 niklas Exp $ */
+/* $OpenBSD: spkr.c,v 1.3 2000/09/29 23:23:38 miod Exp $ */
/* $NetBSD: spkr.c,v 1.1 1998/04/15 20:26:18 drochner Exp $ */
/*
@@ -172,7 +172,7 @@ playtone(pitch, value, sustain)
if (pitch == -1)
rest(whole * snum / (value * sdenom));
- else
+ else if (pitch >= 0 && pitch < sizeof(pitchtab))
{
sound = (whole * snum) / (value * sdenom)
- (whole * (FILLTIME - fill)) / (value * FILLTIME);