boot: Take maximum of READ_SIZE and WRITE_SIZE when checking sizes, fixes #2382

This commit is contained in:
Maja Piechotka 2024-01-06 15:21:24 -08:00
parent 294046cddb
commit b28629822b

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 }
} }