Skip to content

Commit 45085b9

Browse files
author
blake2-ppc
committed
std: Fix bug in ChunkIter::idx
ChunkIter .idx() didn't handle overflow correctly, even though it tried.
1 parent ea9c5c4 commit 45085b9

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/libstd/vec.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,10 @@ impl<'self, T> RandomAccessIterator<&'self [T]> for ChunkIter<'self, T> {
547547
fn idx(&self, index: uint) -> Option<&'self [T]> {
548548
if index < self.indexable() {
549549
let lo = index * self.size;
550-
Some(self.v.slice(lo, cmp::min(lo, self.v.len() - self.size) + self.size))
550+
let mut hi = lo + self.size;
551+
if hi < lo || hi > self.v.len() { hi = self.v.len(); }
552+
553+
Some(self.v.slice(lo, hi))
551554
} else {
552555
None
553556
}

0 commit comments

Comments
 (0)