aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mavlink
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-05-06 14:57:06 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-05-06 14:57:06 +0200
commit1d6b9fae037422f4c61bdd7ee1a5ea0803a59726 (patch)
treede9eee67d075d1e5b04746e40d14dc16bebd09db /src/modules/mavlink
parent13ad95169f1da852f0a641e270669f2f4f3c5ece (diff)
downloadpx4-firmware-1d6b9fae037422f4c61bdd7ee1a5ea0803a59726.tar.gz
px4-firmware-1d6b9fae037422f4c61bdd7ee1a5ea0803a59726.tar.bz2
px4-firmware-1d6b9fae037422f4c61bdd7ee1a5ea0803a59726.zip
Fix in-air restarts, protect against an external MAVLink sender exploiting the restart mechanism
Diffstat (limited to 'src/modules/mavlink')
-rw-r--r--src/modules/mavlink/mavlink_receiver.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp
index 7c93c1c00..64fc41838 100644
--- a/src/modules/mavlink/mavlink_receiver.cpp
+++ b/src/modules/mavlink/mavlink_receiver.cpp
@@ -217,6 +217,12 @@ MavlinkReceiver::handle_message_command_long(mavlink_message_t *msg)
_mavlink->_task_should_exit = true;
} else {
+
+ if (msg->sysid == mavlink_system.sysid && msg->compid == mavlink_system.compid) {
+ warnx("ignoring CMD spoofed with same SYS/COMP ID");
+ return;
+ }
+
struct vehicle_command_s vcmd;
memset(&vcmd, 0, sizeof(vcmd));