Merge pull request #2411 from uzytkownik/reading-from-async-firmware-updater

boot: Take maximum of READ_SIZE and WRITE_SIZE when checking sizes, fixes #2382
This commit is contained in:
Ulf Lilleengen 2024-01-07 16:12:58 +00:00 committed by GitHub
commit 8e7f477b01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -224,10 +224,10 @@ impl<'d, STATE: NorFlash> FirmwareState<'d, STATE> {
/// ///
/// # Safety /// # Safety
/// ///
/// The `aligned` buffer must have a size of STATE::WRITE_SIZE, and follow the alignment rules for the flash being read from /// The `aligned` buffer must have a size of maximum of STATE::WRITE_SIZE and STATE::READ_SIZE,
/// and written to. /// and follow the alignment rules for the flash being read from and written to.
pub fn new(state: STATE, aligned: &'d mut [u8]) -> Self { pub fn new(state: STATE, aligned: &'d mut [u8]) -> Self {
assert_eq!(aligned.len(), STATE::WRITE_SIZE); assert_eq!(aligned.len(), STATE::WRITE_SIZE.max(STATE::READ_SIZE));
Self { state, aligned } Self { state, aligned }
} }