diff --git a/src/lib/mixer/mixer_helicopter.cpp b/src/lib/mixer/mixer_helicopter.cpp index 87441ee7bc..c087b3a283 100644 --- a/src/lib/mixer/mixer_helicopter.cpp +++ b/src/lib/mixer/mixer_helicopter.cpp @@ -200,6 +200,10 @@ HelicopterMixer::from_text(Mixer::ControlCallback control_cb, uintptr_t cb_handl unsigned HelicopterMixer::mix(float *outputs, unsigned space) { + if (space < _mixer_info.control_count + 1u) { + return 0; + } + /* Find index to use for curves */ float thrust_cmd = get_control(0, 3); int idx = (thrust_cmd / 0.25f); diff --git a/src/lib/mixer/mixer_multirotor.cpp b/src/lib/mixer/mixer_multirotor.cpp index ce04811d9e..8559d01823 100644 --- a/src/lib/mixer/mixer_multirotor.cpp +++ b/src/lib/mixer/mixer_multirotor.cpp @@ -354,6 +354,10 @@ void MultirotorMixer::mix_yaw(float yaw, float *outputs) unsigned MultirotorMixer::mix(float *outputs, unsigned space) { + if (space < _rotor_count) { + return 0; + } + float roll = math::constrain(get_control(0, 0) * _roll_scale, -1.0f, 1.0f); float pitch = math::constrain(get_control(0, 1) * _pitch_scale, -1.0f, 1.0f); float yaw = math::constrain(get_control(0, 2) * _yaw_scale, -1.0f, 1.0f);