AudioDSPTools icon indicating copy to clipboard operation
AudioDSPTools copied to clipboard

Fix SIGFPE crash - Initialize mRawAudioSampleRate and validate sample…

Open damiangr opened this issue 3 months ago • 0 comments

Problem

The ImpulseResponse class can trigger SIGFPE (floating point exception) crashes due to division by zero when mRawAudioSampleRate is uninitialized or zero.

Solution

  • Initialize mRawAudioSampleRate to 0.0 in both constructors
  • Add validation in constructor to check if input sampleRate <= 0.0
  • Add validation in _SetWeights() to check if mSampleRate <= 0.0
  • Return early with ERROR_OTHER state 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.

damiangr avatar Nov 05 '25 13:11 damiangr