1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 11:29:58 +03:00

Fix length

This commit is contained in:
Mark Haslinghuis 2025-07-06 17:22:24 +02:00
parent b6d37008f5
commit c5497d11a9
4 changed files with 14 additions and 18 deletions

View file

@ -188,8 +188,8 @@ static CMS_Menu cmsx_menuCalibration = {
// Info // Info
#if defined(USE_BOARD_INFO) #if defined(USE_BOARD_INFO)
static char manufacturerId[MAX_MANUFACTURER_ID_LENGTH + 1]; static char manufacturerId[MAX_MANUFACTURER_ID_LENGTH];
static char boardName[MAX_BOARD_NAME_LENGTH + 1]; static char boardName[MAX_BOARD_NAME_LENGTH];
static const void *cmsx_FirmwareInit(displayPort_t *pDisp) static const void *cmsx_FirmwareInit(displayPort_t *pDisp)
{ {

View file

@ -29,8 +29,8 @@
#if !defined(BOARD_NAME) #if !defined(BOARD_NAME)
static bool boardInformationSet = false; static bool boardInformationSet = false;
static char manufacturerId[MAX_MANUFACTURER_ID_LENGTH + 1]; static char manufacturerId[MAX_MANUFACTURER_ID_LENGTH];
static char boardName[MAX_BOARD_NAME_LENGTH + 1]; static char boardName[MAX_BOARD_NAME_LENGTH];
static bool boardInformationWasUpdated = false; static bool boardInformationWasUpdated = false;
#endif #endif
@ -42,10 +42,8 @@ void initBoardInformation(void)
#if !defined(BOARD_NAME) #if !defined(BOARD_NAME)
boardInformationSet = boardConfig()->boardInformationSet; boardInformationSet = boardConfig()->boardInformationSet;
if (boardInformationSet) { if (boardInformationSet) {
strncpy(manufacturerId, boardConfig()->manufacturerId, MAX_MANUFACTURER_ID_LENGTH + 1); strncpy(manufacturerId, boardConfig()->manufacturerId, MAX_MANUFACTURER_ID_LENGTH);
manufacturerId[MAX_MANUFACTURER_ID_LENGTH] = 0; strncpy(boardName, boardConfig()->boardName, MAX_BOARD_NAME_LENGTH);
strncpy(boardName, boardConfig()->boardName, MAX_BOARD_NAME_LENGTH + 1);
boardName[MAX_BOARD_NAME_LENGTH] = 0;
} }
#endif #endif
@ -88,8 +86,7 @@ bool setManufacturerId(const char *newManufacturerId)
{ {
#if !defined(BOARD_NAME) #if !defined(BOARD_NAME)
if (!boardInformationSet || strlen(manufacturerId) == 0) { if (!boardInformationSet || strlen(manufacturerId) == 0) {
strncpy(manufacturerId, newManufacturerId, MAX_MANUFACTURER_ID_LENGTH + 1); strncpy(manufacturerId, newManufacturerId, MAX_MANUFACTURER_ID_LENGTH);
manufacturerId[MAX_MANUFACTURER_ID_LENGTH] = 0;
boardInformationWasUpdated = true; boardInformationWasUpdated = true;
@ -107,8 +104,7 @@ bool setBoardName(const char *newBoardName)
{ {
#if !defined(BOARD_NAME) #if !defined(BOARD_NAME)
if (!boardInformationSet || strlen(boardName) == 0) { if (!boardInformationSet || strlen(boardName) == 0) {
strncpy(boardName, newBoardName, MAX_BOARD_NAME_LENGTH + 1); strncpy(boardName, newBoardName, MAX_BOARD_NAME_LENGTH);
boardName[MAX_BOARD_NAME_LENGTH] = 0;
boardInformationWasUpdated = true; boardInformationWasUpdated = true;
@ -126,8 +122,8 @@ bool persistBoardInformation(void)
{ {
#if !defined(BOARD_NAME) #if !defined(BOARD_NAME)
if (boardInformationWasUpdated) { if (boardInformationWasUpdated) {
strncpy(boardConfigMutable()->manufacturerId, manufacturerId, MAX_MANUFACTURER_ID_LENGTH + 1); strncpy(boardConfigMutable()->manufacturerId, manufacturerId, MAX_MANUFACTURER_ID_LENGTH);
strncpy(boardConfigMutable()->boardName, boardName, MAX_BOARD_NAME_LENGTH + 1); strncpy(boardConfigMutable()->boardName, boardName, MAX_BOARD_NAME_LENGTH);
boardConfigMutable()->boardInformationSet = true; boardConfigMutable()->boardInformationSet = true;
initBoardInformation(); initBoardInformation();

View file

@ -4023,7 +4023,7 @@ static mspResult_e mspProcessInCommand(mspDescriptor_t srcDesc, int16_t cmdMSP,
case MSP_SET_BOARD_INFO: case MSP_SET_BOARD_INFO:
if (!boardInformationIsSet()) { if (!boardInformationIsSet()) {
uint8_t length = sbufReadU8(src); uint8_t length = sbufReadU8(src);
char boardName[MAX_BOARD_NAME_LENGTH + 1]; char boardName[MAX_BOARD_NAME_LENGTH];
sbufReadData(src, boardName, MIN(length, MAX_BOARD_NAME_LENGTH)); sbufReadData(src, boardName, MIN(length, MAX_BOARD_NAME_LENGTH));
if (length > MAX_BOARD_NAME_LENGTH) { if (length > MAX_BOARD_NAME_LENGTH) {
sbufAdvance(src, length - MAX_BOARD_NAME_LENGTH); sbufAdvance(src, length - MAX_BOARD_NAME_LENGTH);
@ -4031,7 +4031,7 @@ static mspResult_e mspProcessInCommand(mspDescriptor_t srcDesc, int16_t cmdMSP,
} }
boardName[length] = '\0'; boardName[length] = '\0';
length = sbufReadU8(src); length = sbufReadU8(src);
char manufacturerId[MAX_MANUFACTURER_ID_LENGTH + 1]; char manufacturerId[MAX_MANUFACTURER_ID_LENGTH];
sbufReadData(src, manufacturerId, MIN(length, MAX_MANUFACTURER_ID_LENGTH)); sbufReadData(src, manufacturerId, MIN(length, MAX_MANUFACTURER_ID_LENGTH));
if (length > MAX_MANUFACTURER_ID_LENGTH) { if (length > MAX_MANUFACTURER_ID_LENGTH) {
sbufAdvance(src, length - MAX_MANUFACTURER_ID_LENGTH); sbufAdvance(src, length - MAX_MANUFACTURER_ID_LENGTH);

View file

@ -33,8 +33,8 @@
typedef struct boardConfig_s { typedef struct boardConfig_s {
uint8_t signature[SIGNATURE_LENGTH]; uint8_t signature[SIGNATURE_LENGTH];
char manufacturerId[MAX_MANUFACTURER_ID_LENGTH + 1]; char manufacturerId[MAX_MANUFACTURER_ID_LENGTH];
char boardName[MAX_BOARD_NAME_LENGTH + 1]; char boardName[MAX_BOARD_NAME_LENGTH];
uint8_t boardInformationSet; uint8_t boardInformationSet;
uint8_t signatureSet; uint8_t signatureSet;
} boardConfig_t; } boardConfig_t;