diff --git a/sw/airborne/modules/datalink/missionlib/blocks.c b/sw/airborne/modules/datalink/missionlib/blocks.c index 1f264cb18f..caff92aca6 100644 --- a/sw/airborne/modules/datalink/missionlib/blocks.c +++ b/sw/airborne/modules/datalink/missionlib/blocks.c @@ -50,9 +50,10 @@ void mavlink_send_block(uint16_t seq) static const char *blocks[] = FP_BLOCKS; char block_name[50]; strncpy(block_name, blocks[seq], 49); // String containing the name of the block - uint8_t len = strlen(blocks[seq]); // Length of the block name + // make sure the string is null terminated if longer than 49chars + block_name[49] = 0; mavlink_msg_script_item_send(MAVLINK_COMM_0, mission_mgr.rem_sysid, mission_mgr.rem_compid, - seq, len, block_name); + seq, block_name); MAVLinkSendMessage(); MAVLINK_DEBUG("Sent BLOCK_ITEM message: seq %i, name %s\n", seq, block_name); } else { diff --git a/sw/airborne/modules/datalink/missionlib/mission_manager.c b/sw/airborne/modules/datalink/missionlib/mission_manager.c index 6b79f5cb74..57b168a0a0 100644 --- a/sw/airborne/modules/datalink/missionlib/mission_manager.c +++ b/sw/airborne/modules/datalink/missionlib/mission_manager.c @@ -92,7 +92,8 @@ void mavlink_mission_periodic(void) // FIXME: really use the SCRIPT_ITEM message to indicate current block? if (mission_mgr.current_block != nav_block) { mission_mgr.current_block = nav_block; - mavlink_send_block(nav_block); // send the current block seq + mavlink_msg_script_current_send(MAVLINK_COMM_0, nav_block); + MAVLinkSendMessage(); } // check if we had a timeout on a transaction if (sys_time_check_and_ack_timer(mission_mgr.timer_id)) { diff --git a/sw/ext/mavlink b/sw/ext/mavlink index ce07a04e48..8e2bcac255 160000 --- a/sw/ext/mavlink +++ b/sw/ext/mavlink @@ -1 +1 @@ -Subproject commit ce07a04e4872e5cc216336d7d2660e5363aab099 +Subproject commit 8e2bcac2551841af80d5560111fd62c37c80c834