diff options
author | 2007-01-07 13:35:51 +0000 | |
---|---|---|
committer | 2007-01-07 13:35:51 +0000 | |
commit | 2f1d7e94f80a8b9abab986d04c2f1e15f928dfdc (patch) | |
tree | d12473b5beac1a1fcc312431e6334b89ff7f6607 /sys/dev/audio.c | |
parent | make the output when interrupting writing the log message consistent. (diff) | |
download | wireguard-openbsd-2f1d7e94f80a8b9abab986d04c2f1e15f928dfdc.tar.xz wireguard-openbsd-2f1d7e94f80a8b9abab986d04c2f1e15f928dfdc.zip |
Protect against zero blocksize (causing a divide by zero) in audiogetinfo().
Diffstat (limited to 'sys/dev/audio.c')
-rw-r--r-- | sys/dev/audio.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/audio.c b/sys/dev/audio.c index 45c3c903b6f..629b728de44 100644 --- a/sys/dev/audio.c +++ b/sys/dev/audio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: audio.c,v 1.53 2006/11/29 13:34:31 miod Exp $ */ +/* $OpenBSD: audio.c,v 1.54 2007/01/07 13:35:51 miod Exp $ */ /* $NetBSD: audio.c,v 1.119 1999/11/09 16:50:47 augustss Exp $ */ /* @@ -2894,9 +2894,12 @@ audiogetinfo(sc, ai) p->buffer_size = sc->sc_pr.bufsize; r->buffer_size = sc->sc_rr.bufsize; - ai->blocksize = sc->sc_pr.blksize; - ai->hiwat = sc->sc_pr.usedhigh / sc->sc_pr.blksize; - ai->lowat = sc->sc_pr.usedlow / sc->sc_pr.blksize; + if ((ai->blocksize = sc->sc_pr.blksize) != 0) { + ai->hiwat = sc->sc_pr.usedhigh / sc->sc_pr.blksize; + ai->lowat = sc->sc_pr.usedlow / sc->sc_pr.blksize; + } else { + ai->hiwat = ai->lowat = 0; + } ai->mode = sc->sc_mode; return (0); |