Commit dea455b3640db0798cc5ef0d2322bb64e099fd7a
1 parent
fe908fbd
Improved max size checking
Showing
1 changed file
with
1 additions
and
1 deletions
examples11/04-vectortmpl/vector.h
@@ -109,7 +109,7 @@ public: | @@ -109,7 +109,7 @@ public: | ||
109 | new (data + size) C(s); | 109 | new (data + size) C(s); |
110 | ++size; | 110 | ++size; |
111 | } else { | 111 | } else { |
112 | - if (cap > std::numeric_limits<decltype(size)>::max() / 2) | 112 | + if (cap > std::numeric_limits<decltype(size)>::max() / (2*sizeof(C))) |
113 | throw bad_alloc(); | 113 | throw bad_alloc(); |
114 | unsigned int newcap = (cap == 0) ? 1 : 2 * cap; | 114 | unsigned int newcap = (cap == 0) ? 1 : 2 * cap; |
115 | C *newdata; | 115 | C *newdata; |