diff --git a/libraries/AP_ADSB/AP_ADSB_Sagetech.cpp b/libraries/AP_ADSB/AP_ADSB_Sagetech.cpp index 6b2c89d97034d..bfb2c981d91e8 100644 --- a/libraries/AP_ADSB/AP_ADSB_Sagetech.cpp +++ b/libraries/AP_ADSB/AP_ADSB_Sagetech.cpp @@ -241,7 +241,8 @@ void AP_ADSB_Sagetech::handle_adsb_in_msg(const Packet_XP &msg) if (msg.payload[16] != 0) { // if string is non-null, consider it valid - memcpy(&vehicle.info, &msg.payload[16], 8); + // "The callsign, 8+null" (from the mavlink spec) means we subtract one here + memcpy(&vehicle.info.callsign, &msg.payload[16], MIN(ARRAY_SIZE(vehicle.info.callsign)-1, 8U)); vehicle.info.flags |= ADSB_FLAGS_VALID_CALLSIGN; }