diff options
Diffstat (limited to 'Build/source/libs/graphite2/graphite2-src/src/inc/List.h')
-rw-r--r-- | Build/source/libs/graphite2/graphite2-src/src/inc/List.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Build/source/libs/graphite2/graphite2-src/src/inc/List.h b/Build/source/libs/graphite2/graphite2-src/src/inc/List.h index 020560235c1..eacb1cfd5cb 100644 --- a/Build/source/libs/graphite2/graphite2-src/src/inc/List.h +++ b/Build/source/libs/graphite2/graphite2-src/src/inc/List.h @@ -34,6 +34,7 @@ of the License or (at your option) any later version. #include <cstdlib> #include <new> +#include "Main.h" namespace graphite2 { @@ -104,7 +105,9 @@ void Vector<T>::reserve(size_t n) if (n > capacity()) { const ptrdiff_t sz = size(); - m_first = static_cast<T*>(realloc(m_first, n*sizeof(T))); + size_t requested; + if (checked_mul(n,sizeof(T), requested)) std::abort(); + m_first = static_cast<T*>(realloc(m_first, requested)); if (!m_first) std::abort(); m_last = m_first + sz; m_end = m_first + n; |