diff options
| author | Steven Fackler <sfackler@gmail.com> | 2017-09-23 21:19:01 -0700 |
|---|---|---|
| committer | Steven Fackler <sfackler@gmail.com> | 2017-09-23 21:19:01 -0700 |
| commit | 9733463d2b141a166bfa2f55ec316066ab0f71b6 (patch) | |
| tree | 95667fc249765b7f89f7ab7499d933e42ad68bcc /src/liballoc/vec_deque.rs | |
| parent | 24831c7221c7b4e32a02f8e8cffe7dfacb88b520 (diff) | |
| download | rust-9733463d2b141a166bfa2f55ec316066ab0f71b6.tar.gz rust-9733463d2b141a166bfa2f55ec316066ab0f71b6.zip | |
Fix capacity comparison in reserve
You can otherwise end up in a situation where you don't actually resize but still call into handle_cap_increase which then corrupts head/tail. Closes #44800
Diffstat (limited to 'src/liballoc/vec_deque.rs')
| -rw-r--r-- | src/liballoc/vec_deque.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/liballoc/vec_deque.rs b/src/liballoc/vec_deque.rs index 6836fbb7c4d..6d64e9e303f 100644 --- a/src/liballoc/vec_deque.rs +++ b/src/liballoc/vec_deque.rs @@ -558,7 +558,7 @@ impl<T> VecDeque<T> { .and_then(|needed_cap| needed_cap.checked_next_power_of_two()) .expect("capacity overflow"); - if new_cap > self.capacity() { + if new_cap > old_cap { self.buf.reserve_exact(used_cap, new_cap - used_cap); unsafe { self.handle_cap_increase(old_cap); |
