From 5e79df7ff1e4b147b81ad87d9dae00425d51d479 Mon Sep 17 00:00:00 2001 From: sukibaby <163092272+sukibaby@users.noreply.github.com> Date: Sun, 22 Jun 2025 19:06:50 -0700 Subject: [PATCH] WaveOut: clamp the value of wo_num_blocks_ --- src/arch/Sound/RageSoundDriver_WaveOut.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/arch/Sound/RageSoundDriver_WaveOut.cpp b/src/arch/Sound/RageSoundDriver_WaveOut.cpp index b8062847f5..7cb437455c 100644 --- a/src/arch/Sound/RageSoundDriver_WaveOut.cpp +++ b/src/arch/Sound/RageSoundDriver_WaveOut.cpp @@ -146,6 +146,13 @@ RString RageSoundDriver_WaveOut::Init() wo_num_blocks_ = CalculateNumBlocks( wo_samplerate_ ); + // Clamp wo_num_blocks_ to the range of kMaximumNumBlocks. + if (wo_num_blocks_ < 1 || wo_num_blocks_ > kMaximumNumBlocks) + { + LOG->Warn("RageSoundDriver_WaveOut: wo_num_blocks_ out of range (%d); clamping", wo_num_blocks_); + wo_num_blocks_ = std::clamp(wo_num_blocks_, 1, kMaximumNumBlocks); + } + wo_frames_per_block_ = kBlockSizeFrames * wo_num_blocks_; wo_blocksize_ = kBlockSizeFrames * kBytesPerFrame;