diff --git a/ledger/src/shred.rs b/ledger/src/shred.rs index bb271a5d1..4f8bf082e 100644 --- a/ledger/src/shred.rs +++ b/ledger/src/shred.rs @@ -519,7 +519,7 @@ impl Shred { } match self.shred_type() { ShredType::Data => { - if self.index() as usize > MAX_DATA_SHREDS_PER_SLOT { + if self.index() as usize >= MAX_DATA_SHREDS_PER_SLOT { return Err(Error::InvalidDataShredIndex { index: self.index(), }); @@ -2136,6 +2136,14 @@ mod tests { }) ); } + { + let mut shred = shred.clone(); + shred.common_header.index = MAX_DATA_SHREDS_PER_SLOT as u32; + assert_matches!( + shred.sanitize(), + Err(Error::InvalidDataShredIndex { index: 32768 }) + ); + } { shred.data_header.size = shred.payload().len() as u16 + 1; assert_matches!(