From 9f5c5591a25ce69fc900482093dfdd86f9c00be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Thu, 28 Apr 2022 13:30:55 +0200 Subject: [PATCH] ActuatorEffectivenessRotors: fix motor count check Check during init to avoid out-of-bound access. --- .../ActuatorEffectiveness/ActuatorEffectivenessRotors.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessRotors.cpp b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessRotors.cpp index ae7b65b2a3..525a986eb5 100644 --- a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessRotors.cpp +++ b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessRotors.cpp @@ -95,7 +95,7 @@ void ActuatorEffectivenessRotors::updateParams() return; } - _geometry.num_rotors = count; + _geometry.num_rotors = math::min(NUM_ROTORS_MAX, (int)count); for (int i = 0; i < _geometry.num_rotors; ++i) { Vector3f &position = _geometry.rotors[i].position; @@ -156,7 +156,7 @@ ActuatorEffectivenessRotors::computeEffectivenessMatrix(const Geometry &geometry { int num_actuators = 0; - for (int i = 0; i < math::min(NUM_ROTORS_MAX, geometry.num_rotors); i++) { + for (int i = 0; i < geometry.num_rotors; i++) { if (i + actuator_start_index >= NUM_ACTUATORS) { break;