From 6c09b268d860f5cf13e79a3d9db6b0be00f7af40 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 8 Feb 2019 12:22:08 +1100 Subject: [PATCH] Filter: fixed crash on zero cutoff frequency this fixes #10435 --- libraries/Filter/LowPassFilter2p.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libraries/Filter/LowPassFilter2p.cpp b/libraries/Filter/LowPassFilter2p.cpp index f823829a2e..653c3a4a62 100644 --- a/libraries/Filter/LowPassFilter2p.cpp +++ b/libraries/Filter/LowPassFilter2p.cpp @@ -35,6 +35,10 @@ template void DigitalBiquadFilter::compute_params(float sample_freq, float cutoff_freq, biquad_params &ret) { ret.cutoff_freq = cutoff_freq; ret.sample_freq = sample_freq; + if (!is_positive(ret.cutoff_freq)) { + // zero cutoff means pass-thru + return; + } float fr = sample_freq/cutoff_freq; float ohm = tanf(M_PI/fr); @@ -83,6 +87,10 @@ float LowPassFilter2p::get_sample_freq(void) const { template T LowPassFilter2p::apply(const T &sample) { + if (!is_positive(_params.cutoff_freq)) { + // zero cutoff means pass-thru + return sample; + } return _filter.apply(sample, _params); }