aboutsummaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-06-30 15:58:56 +0200
committerTor Egge <Tor.Egge@online.no>2021-06-30 17:29:19 +0200
commit9e76d22ab561e496122ffcf6ad00f6d32b793d7e (patch)
tree9e85422395282bcedd6ee0041f79586ef3dc9170 /vespamalloc
parentdda366c833917f5ded9c647f6bb3bc573be189cd (diff)
Proxy call to reallocarray to avoid compile time overflow detection.
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/tests/test1/new_test.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/vespamalloc/src/tests/test1/new_test.cpp b/vespamalloc/src/tests/test1/new_test.cpp
index 653f039bccd..a82badbbbdc 100644
--- a/vespamalloc/src/tests/test1/new_test.cpp
+++ b/vespamalloc/src/tests/test1/new_test.cpp
@@ -3,6 +3,7 @@
#include <vespa/log/log.h>
#include <malloc.h>
#include <dlfcn.h>
+#include <functional>
LOG_SETUP("new_test");
@@ -96,7 +97,8 @@ TEST("verify new with alignment = 64 with single element") {
}
#if __GLIBC_PREREQ(2, 26)
-TEST("verify realloarray") {
+TEST("verify reallocarray") {
+ std::function<void*(void*,size_t,size_t)> call_reallocarray = [](void *ptr, size_t nmemb, size_t size) noexcept { return reallocarray(ptr, nmemb, size); };
void *arr = calloc(5,5);
//Used to ensure that 'arr' can not resized in place.
std::vector<std::unique_ptr<char[]>> dummies;
@@ -104,14 +106,14 @@ TEST("verify realloarray") {
dummies.push_back(std::make_unique<char[]>(5*5));
}
errno = 0;
- void *arr2 = reallocarray(arr, 800, 5);
+ void *arr2 = call_reallocarray(arr, 800, 5);
int myErrno = errno;
EXPECT_NOT_EQUAL(arr, arr2);
EXPECT_NOT_EQUAL(nullptr, arr2);
EXPECT_NOT_EQUAL(ENOMEM, myErrno);
errno = 0;
- void *arr3 = reallocarray(arr2, 1ul << 33, 1ul << 33);
+ void *arr3 = call_reallocarray(arr2, 1ul << 33, 1ul << 33);
myErrno = errno;
EXPECT_EQUAL(nullptr, arr3);
EXPECT_EQUAL(ENOMEM, myErrno);