From 39fbca1d55f0a9cc4b1354f31796355bc64cf6b5 Mon Sep 17 00:00:00 2001 From: Beniamino Pozzan Date: Mon, 2 Jun 2025 03:33:09 +0100 Subject: [PATCH] fix (msp_ods): clear buffers before writing and adjust sizes (#24951) Signed-off-by: Beniamino Pozzan --- src/drivers/osd/msp_osd/msp_defines.h | 2 +- src/drivers/osd/msp_osd/uorb_to_msp.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/drivers/osd/msp_osd/msp_defines.h b/src/drivers/osd/msp_osd/msp_defines.h index 317c0b51f2..55eda1074c 100644 --- a/src/drivers/osd/msp_osd/msp_defines.h +++ b/src/drivers/osd/msp_osd/msp_defines.h @@ -462,7 +462,7 @@ struct msp_rendor_satellites_used_t { uint8_t iconIndex = 0x1E; //satellites icon uint8_t iconIndex2 = 0x1F; //satellites icon - char str[2]; // 99 + char str[3]; // 99 } __attribute__((packed)); diff --git a/src/drivers/osd/msp_osd/uorb_to_msp.cpp b/src/drivers/osd/msp_osd/uorb_to_msp.cpp index a25199fa41..927dc3e551 100644 --- a/src/drivers/osd/msp_osd/uorb_to_msp.cpp +++ b/src/drivers/osd/msp_osd/uorb_to_msp.cpp @@ -378,6 +378,7 @@ msp_rendor_satellites_used_t construct_rendor_GPS_NUM(const sensor_gps_s &vehicl num.screenYPosition = 0x08; num.screenXPosition = 0x29; + memset(&num.str[0], 0, sizeof(num.str)); snprintf(&num.str[0], sizeof(num.str), "%d", vehicle_gps_position.satellites_used); return num; @@ -485,6 +486,7 @@ msp_rendor_pitch_t construct_rendor_PITCH(const vehicle_attitude_s &vehicle_att double pitch_deg = (double)math::degrees(euler_attitude.theta()); // attitude.roll = math::degrees(euler_attitude.phi()) * 10; + memset(&pit.str[0], 0, sizeof(pit.str)); snprintf(&pit.str[0], sizeof(pit.str), "%.1f", pitch_deg); return pit; @@ -503,6 +505,7 @@ msp_rendor_roll_t construct_rendor_ROLL(const vehicle_attitude_s &vehicle_attit // double pitch = (double)math::degrees(euler_attitude.theta()); double roll_deg = (double)math::degrees(euler_attitude.phi()); + memset(&roll.str[0], 0, sizeof(roll.str)); snprintf(&roll.str[0], sizeof(roll.str), "%.1f", roll_deg); return roll;