From cefa41f85cd2d529f433175959c7d74e714b7c56 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Tue, 26 Aug 2025 18:33:37 +0200 Subject: [PATCH] failure command: fix array bound seg fault with e.g. `failure motor -i 1` --- src/systemcmds/failure/failure.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/systemcmds/failure/failure.cpp b/src/systemcmds/failure/failure.cpp index 2b28aefde8..2d764d9b91 100644 --- a/src/systemcmds/failure/failure.cpp +++ b/src/systemcmds/failure/failure.cpp @@ -175,12 +175,6 @@ extern "C" __EXPORT int failure_main(int argc, char *argv[]) return 0; } - if (argc < 3) { - PX4_ERR("Not enough arguments."); - print_usage(); - return 1; - } - const char *myoptarg = nullptr; int ch = 0; int myoptind = 1; @@ -200,6 +194,12 @@ extern "C" __EXPORT int failure_main(int argc, char *argv[]) } } + if ((argc < 3) || (myoptind + 1) >= argc) { + print_usage(); + PX4_ERR("Not enough arguments."); + return 1; + } + const char *requested_failure_unit = argv[myoptind]; for (const auto &failure_unit : failure_units) {