From ed583d8bd14494118e7b795f760ae9140763805b Mon Sep 17 00:00:00 2001 From: paxcut <53811119+paxcut@users.noreply.github.com> Date: Fri, 2 Jan 2026 08:03:52 -0700 Subject: [PATCH] fix: Division by zero in sound visualizer. (#2593) Can happen if input is less than 2400*channels number of points. The fix is detecting it and throwing an error. --- plugins/visualizers/source/content/pl_visualizers/sound.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/visualizers/source/content/pl_visualizers/sound.cpp b/plugins/visualizers/source/content/pl_visualizers/sound.cpp index cd6f1be5d..400fc28e9 100644 --- a/plugins/visualizers/source/content/pl_visualizers/sound.cpp +++ b/plugins/visualizers/source/content/pl_visualizers/sound.cpp @@ -30,8 +30,10 @@ namespace hex::plugin::visualizers { if (sampleRate == 0) throw std::logic_error(fmt::format("Invalid sample rate: {}", sampleRate)); - else if (channels == 0) + if (channels == 0) throw std::logic_error(fmt::format("Invalid channel count: {}", channels)); + if (downSampling == 0) + throw std::logic_error(fmt::format("Invalid down sampling factor: {} / 2400 / {} = {}", wavePattern->getSize(), channels, downSampling)); u64 sampledIndex; if (shouldReset) { waveData.clear();