summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite2/graphite2-src/src/inc/List.h
diff options
context:
space:
mode:
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.h5
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;