AudioDSPTools
AudioDSPTools copied to clipboard
Fix SIGFPE crash - Initialize mRawAudioSampleRate and validate sample…
Problem
The ImpulseResponse class can trigger SIGFPE (floating point exception) crashes due to division by zero when mRawAudioSampleRate is uninitialized or zero.
Solution
- Initialize
mRawAudioSampleRateto 0.0 in both constructors - Add validation in constructor to check if input
sampleRate <= 0.0 - Add validation in
_SetWeights()to check ifmSampleRate <= 0.0 - Return early with
ERROR_OTHERstate when invalid sample rates detected
Impact
- Prevents crashes in downstream applications (e.g., NeuralAmpModelerPlugin)
- Maintains existing API and behavior for valid inputs
- Minimal code changes focused on safety
Testing
- ✅ Tested on Windows (Visual Studio 2022, x64 Release build)
- ⚠️ Limited macOS testing due to environmental constraints (VMware Sonoma 14.7.2 + Xcode 16.2)
- 📝 Recommend CI testing for comprehensive macOS validation
Files Changed
-
dsp/ImpulseResponse.cpp: Added initialization and validation checksessions or IR files with invalid sample rates.