diff options
author | Tor Egge <Tor.Egge@online.no> | 2021-06-30 15:58:56 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2021-06-30 17:29:19 +0200 |
commit | 9e76d22ab561e496122ffcf6ad00f6d32b793d7e (patch) | |
tree | 9e85422395282bcedd6ee0041f79586ef3dc9170 /vespamalloc | |
parent | dda366c833917f5ded9c647f6bb3bc573be189cd (diff) |
Proxy call to reallocarray to avoid compile time overflow detection.
Diffstat (limited to 'vespamalloc')
-rw-r--r-- | vespamalloc/src/tests/test1/new_test.cpp | 8 |
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); |