diff options
| author | Cameron Grant <cg@FreeBSD.org> | 2002-01-23 04:32:18 +0000 |
|---|---|---|
| committer | Cameron Grant <cg@FreeBSD.org> | 2002-01-23 04:32:18 +0000 |
| commit | 1c72c53f4ecb3b031debb3166f56f4e7bf729731 (patch) | |
| tree | 6c8b6fe25bcb05833ec764e8b37902ca9e73bb20 /sys/dev | |
| parent | 0b9030a00f030f6e27cfbb3c62aa653cbc886e19 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/sound/pcm/dsp.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index d5a05d11990bf..55147e3f525d1 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -1022,10 +1022,16 @@ dsp_mmap(dev_t i_dev, vm_offset_t offset, int nprot) return -1; } + if (offset >= sndbuf_getsize(c->bufsoft)) { + relchns(i_dev, rdch, wrch, SD_F_PRIO_RD | SD_F_PRIO_WR); + splx(s); + return -1; + } + if (!(c->flags & CHN_F_MAPPED)) c->flags |= CHN_F_MAPPED; - ret = atop(vtophys(((char *)sndbuf_getbuf(c->bufsoft)) + offset)); + ret = atop(vtophys(sndbuf_getbufofs(c->bufsoft, offset))); relchns(i_dev, rdch, wrch, SD_F_PRIO_RD | SD_F_PRIO_WR); splx(s); |
