From 56faaae95968ddba750e76ae265f721905d022b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Fri, 3 Jun 2022 12:34:24 +0200 Subject: [PATCH] failure: fix invalid memory access failure_units[unit].key was incorrect --- src/systemcmds/failure/failure.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/systemcmds/failure/failure.cpp b/src/systemcmds/failure/failure.cpp index 32fae7ba6f..527608f59d 100644 --- a/src/systemcmds/failure/failure.cpp +++ b/src/systemcmds/failure/failure.cpp @@ -118,9 +118,9 @@ failure gps off } } -int inject_failure(uint8_t unit, uint8_t type, uint8_t instance) +int inject_failure(const FailureUnit& unit, const FailureType& type, uint8_t instance) { - PX4_WARN("inject failure unit: %s (%d), type: %s (%d), instance: %d", failure_units[unit].key, unit, failure_types[type].key, type, instance); + PX4_WARN("inject failure unit: %s (%d), type: %s (%d), instance: %d", unit.key, unit.value, type.key, type.value, instance); uORB::Subscription command_ack_sub{ORB_ID(vehicle_command_ack)}; @@ -128,8 +128,8 @@ int inject_failure(uint8_t unit, uint8_t type, uint8_t instance) vehicle_command_s command{}; command.command = vehicle_command_s::VEHICLE_CMD_INJECT_FAILURE; - command.param1 = static_cast(unit); - command.param2 = static_cast(type); + command.param1 = static_cast(unit.value); + command.param2 = static_cast(type.value); command.param3 = static_cast(instance); command.timestamp = hrt_absolute_time(); command_pub.publish(command); @@ -214,7 +214,7 @@ extern "C" __EXPORT int failure_main(int argc, char *argv[]) continue; } - return inject_failure(failure_unit.value, failure_type.value, instance); + return inject_failure(failure_unit, failure_type, instance); } PX4_ERR("Failure type '%s' not found", requested_failure_type);