summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-06-24 22:07:54 +0200
committerGitHub <noreply@github.com>2019-06-24 22:07:54 +0200
commitd4c9ae4c244508b7fc69d87bec3367384fe28e12 (patch)
tree9441d32585150ad73ef753f239a8abade43ea2fd
parentab932bb675f7966b94c46da76ca822ebbf24ddd2 (diff)
parent679bb882fc0f58df7fa002aa180b2ac574366af8 (diff)
Merge pull request #30023 from Faless/crash/vector_resize
Fix PoolVector resize and subarray.
-rw-r--r--core/pool_vector.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/pool_vector.h b/core/pool_vector.h
index 102a620f17..338de966f6 100644
--- a/core/pool_vector.h
+++ b/core/pool_vector.h
@@ -411,8 +411,8 @@ public:
p_to = size() + p_to;
}
- CRASH_BAD_INDEX(p_from, size());
- CRASH_BAD_INDEX(p_to, size());
+ ERR_FAIL_INDEX_V(p_from, size(), PoolVector<T>());
+ ERR_FAIL_INDEX_V(p_to, size(), PoolVector<T>());
PoolVector<T> slice;
int span = 1 + p_to - p_from;
@@ -511,6 +511,8 @@ const T PoolVector<T>::operator[](int p_index) const {
template <class T>
Error PoolVector<T>::resize(int p_size) {
+ ERR_FAIL_COND_V(p_size < 0, ERR_INVALID_PARAMETER);
+
if (alloc == NULL) {
if (p_size == 0)