The buffer size that is too small causes choppy sound. That is not
practical at all. With this patch, the minimum value of the buffer
size (i.e. fragstotal * fragsize) is restricted to 16384 bytes.

Signed-off-by: Takashi Yano <takashi.y...@nifty.ne.jp>
---
 winsup/cygwin/fhandler/dsp.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/winsup/cygwin/fhandler/dsp.cc b/winsup/cygwin/fhandler/dsp.cc
index 7459ddc25..6140ef0c2 100644
--- a/winsup/cygwin/fhandler/dsp.cc
+++ b/winsup/cygwin/fhandler/dsp.cc
@@ -1434,6 +1434,8 @@ fhandler_dev_dsp::_ioctl (unsigned int cmd, void *buf)
        int *p = (int *) buf;
        fragstotal_ = min (*p >> 16, MAX_BLOCKS);
        fragsize_ = 1 << (*p & 0xffff);
+       while (fragsize_ * fragstotal_ < 16384)
+         fragsize_ *= 2;
        fragment_has_been_set = true;
        return 0;
       }
-- 
2.39.0

Reply via email to