mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 02:16:53 +08:00
Better error handling for too large arguments
This commit is contained in:
@@ -702,10 +702,12 @@ PX4IO::set_failsafe_values(const uint16_t *vals, unsigned len)
|
|||||||
{
|
{
|
||||||
uint16_t regs[_max_actuators];
|
uint16_t regs[_max_actuators];
|
||||||
|
|
||||||
unsigned max = (len < _max_actuators) ? len : _max_actuators;
|
if (len > _max_actuators)
|
||||||
|
/* fail with error */
|
||||||
|
return E2BIG;
|
||||||
|
|
||||||
/* copy values to registers in IO */
|
/* copy values to registers in IO */
|
||||||
return io_reg_set(PX4IO_PAGE_FAILSAFE_PWM, 0, vals, max);
|
return io_reg_set(PX4IO_PAGE_FAILSAFE_PWM, 0, vals, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
@@ -1763,7 +1765,10 @@ px4io_main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_dev->set_failsafe_values(failsafe, sizeof(failsafe) / sizeof(failsafe[0]));
|
int ret = g_dev->set_failsafe_values(failsafe, sizeof(failsafe) / sizeof(failsafe[0]));
|
||||||
|
|
||||||
|
if (ret != OK)
|
||||||
|
errx(ret, "failed setting failsafe values");
|
||||||
} else {
|
} else {
|
||||||
errx(1, "not loaded");
|
errx(1, "not loaded");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user