diff --git a/mavlink/include/mavlink/v2.0 b/mavlink/include/mavlink/v2.0 index f03d91ae93..5571ffbcd6 160000 --- a/mavlink/include/mavlink/v2.0 +++ b/mavlink/include/mavlink/v2.0 @@ -1 +1 @@ -Subproject commit f03d91ae932dd718d81f851b584dbd21cffafdd2 +Subproject commit 5571ffbcd67e19ee6c6301fe13712856906525c2 diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index ac6703d809..38c1c3bc7e 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1768,6 +1768,14 @@ MavlinkReceiver::handle_message_serial_control(mavlink_message_t *msg) mavlink_serial_control_t serial_control_mavlink; mavlink_msg_serial_control_decode(msg, &serial_control_mavlink); + // Check if the message is targeted at us. + if ((serial_control_mavlink.target_system != 0 && + mavlink_system.sysid != serial_control_mavlink.target_system) || + (serial_control_mavlink.target_component != 0 && + mavlink_system.compid != serial_control_mavlink.target_component)) { + return; + } + // we only support shell commands if (serial_control_mavlink.device != SERIAL_CONTROL_DEV_SHELL || (serial_control_mavlink.flags & SERIAL_CONTROL_FLAG_REPLY)) {