fix: align bootloader image validation limits

This commit is contained in:
2026-04-29 19:55:10 +02:00
parent 09c686d542
commit 16365e1d04
4 changed files with 49 additions and 5 deletions

View File

@ -138,12 +138,14 @@ class FirmwareFileSelectionService {
final vectorStackPointer = _readLeU32(selection.fileBytes, 0);
final vectorReset = _readLeU32(selection.fileBytes, 4);
final sessionId = _normalizeSessionId(_sessionIdGenerator());
final metadata = BootloaderDfuFirmwareMetadata(
totalLength: selection.fileBytes.length,
crc32: BootloaderDfuProtocol.crc32(selection.fileBytes),
appStart: universalShifterDfuAppStart,
imageVersion: 0,
sessionId: _sessionIdGenerator() & 0xFF,
sessionId: sessionId,
flags: universalShifterDfuFlagNone,
vectorStackPointer: vectorStackPointer,
vectorReset: vectorReset,
@ -215,7 +217,12 @@ class FirmwareFileSelectionService {
return ByteData.sublistView(bytes).getUint32(offset, Endian.little);
}
static int _normalizeSessionId(int sessionId) {
final normalized = sessionId & 0xFF;
return normalized == 0 ? 1 : normalized;
}
static int _randomSessionId() {
return Random.secure().nextInt(256);
return Random.secure().nextInt(255) + 1;
}
}