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

fix format overflow in blackboxVirtualBeginLog (#14373)

* cast largestLogFileNumber to 16bits to prevent format overflow

* Update src/main/blackbox/blackbox_virtual.c

remove uint16 cast

Co-authored-by: Petr Ledvina <ledvinap@gmail.com>

* Update src/main/blackbox/blackbox_virtual.c

use snprintf instead of strlen

Co-authored-by: Petr Ledvina <ledvinap@gmail.com>

---------

Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
This commit is contained in:
Leo Garcia 2025-05-12 10:34:57 -07:00 committed by GitHub
parent 32a7fbef5d
commit 37c921cdf0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 4 deletions

View file

@ -87,9 +87,9 @@ bool blackboxVirtualBeginLog(void)
if (blackboxVirtualFile != NULL) {
return false;
}
const size_t name_buffer_length = strlen(LOGFILE_PREFIX) + 5 + strlen(LOGFILE_SUFFIX) + 2; //file name template: LOG00001.BFL
const size_t name_buffer_length = snprintf(NULL, 0, "%s%05u.%s", LOGFILE_PREFIX, (largestLogFileNumber + 1) % 100000, LOGFILE_SUFFIX);
char filename[name_buffer_length];
sprintf(filename, "%s%05i.%s", LOGFILE_PREFIX, largestLogFileNumber + 1, LOGFILE_SUFFIX);
snprintf(filename, sizeof(filename), "%s%05u.%s", LOGFILE_PREFIX, (largestLogFileNumber + 1) % 100000, LOGFILE_SUFFIX);
blackboxVirtualFile = fopen(filename, "w");
if (blackboxVirtualFile != NULL) {
largestLogFileNumber++;
@ -111,7 +111,7 @@ void blackboxVirtualClose(void)
blackboxVirtualEndLog();
}
uint32_t blackboxVirtualLogFileNumber(void)
int32_t blackboxVirtualLogFileNumber(void)
{
return largestLogFileNumber;
}

View file

@ -32,4 +32,4 @@ bool blackboxVirtualFlush(void);
bool blackboxVirtualBeginLog(void);
bool blackboxVirtualEndLog(void);
void blackboxVirtualClose(void);
uint32_t blackboxVirtualLogFileNumber(void);
int32_t blackboxVirtualLogFileNumber(void);