File tree Expand file tree Collapse file tree 2 files changed +6
-2
lines changed Expand file tree Collapse file tree 2 files changed +6
-2
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 1f192430956704ddf263aba0cfb5b8856c547beb
2
+ refs/heads/master: 0966ec01dcb0ff90e6d483706820794ef8e16c2e
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
4
refs/heads/snap-stage3: a6d3e57dca68fde4effdda3e4ae2887aa535fcd6
5
5
refs/heads/try: b160761e35efcd1207112b3b782c06633cf441a8
Original file line number Diff line number Diff line change @@ -186,7 +186,11 @@ pub fn with_capacity<T>(capacity: uint) -> ~[T] {
186
186
vec
187
187
} else {
188
188
let alloc = capacity * mem:: nonzero_size_of :: < T > ( ) ;
189
- let ptr = malloc_raw ( alloc + mem:: size_of :: < Vec < ( ) > > ( ) ) as * mut Vec < ( ) > ;
189
+ let size = alloc + mem:: size_of :: < Vec < ( ) > > ( ) ;
190
+ if alloc / mem:: nonzero_size_of :: < T > ( ) != capacity || size < alloc {
191
+ fail ! ( "vector size is too large: {}" , capacity) ;
192
+ }
193
+ let ptr = malloc_raw ( size) as * mut Vec < ( ) > ;
190
194
( * ptr) . alloc = alloc;
191
195
( * ptr) . fill = 0 ;
192
196
cast:: transmute ( ptr)
You can’t perform that action at this time.
0 commit comments