From 3007b0876c251127a8078a18fa1057f82fa256b3 Mon Sep 17 00:00:00 2001 From: BazookaJoe1900 Date: Mon, 14 Oct 2019 18:18:08 +0300 Subject: [PATCH] mavlink: add protection against setting wrong type of parameters --- src/modules/mavlink/mavlink_parameters.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/mavlink/mavlink_parameters.cpp b/src/modules/mavlink/mavlink_parameters.cpp index 5e9b55ee46..2fa2961f2a 100644 --- a/src/modules/mavlink/mavlink_parameters.cpp +++ b/src/modules/mavlink/mavlink_parameters.cpp @@ -123,6 +123,12 @@ MavlinkParametersManager::handle_message(const mavlink_message_t *msg) sprintf(buf, "[pm] unknown param: %s", name); _mavlink->send_statustext_info(buf); + } else if (!((param_type(param) == PARAM_TYPE_INT32 && set.param_type == MAV_PARAM_TYPE_INT32) || + (param_type(param) == PARAM_TYPE_FLOAT && set.param_type == MAV_PARAM_TYPE_REAL32))) { + char buf[MAVLINK_MSG_STATUSTEXT_FIELD_TEXT_LEN]; + sprintf(buf, "[pm] param types mismatch param: %s", name); + _mavlink->send_statustext_info(buf); + } else { // According to the mavlink spec we should always acknowledge a write operation. param_set(param, &(set.param_value));