aboutsummaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-08-23 10:32:07 +0200
committerTor Egge <Tor.Egge@online.no>2021-08-23 10:48:48 +0200
commit942a0038a387c5e66ecfa436e5c07f6ff3c71f74 (patch)
tree043bf1c95884b1cc25d95502335cec3161d57368 /vespamalloc
parent387bbb293e60d6eb6054e17c5db937e00da80144 (diff)
Use dlsym() to get original mmap function address from libc.
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/mmap.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/mmap.cpp b/vespamalloc/src/vespamalloc/malloc/mmap.cpp
index bd67bbef710..3f92097914d 100644
--- a/vespamalloc/src/vespamalloc/malloc/mmap.cpp
+++ b/vespamalloc/src/vespamalloc/malloc/mmap.cpp
@@ -46,10 +46,8 @@ static bool isFromVespaMalloc(const void * addr)
void * local_mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset)
{
static mmap_function real_func = NULL;
- // This is a dirty trick for use with vespamalloc as there can be
- // no allocations before the initial mmap from vespamalloc has succeded.
if (real_func == NULL) {
- real_func = (mmap_function) _dl_sym (RTLD_NEXT, "mmap", __builtin_return_address (0));
+ real_func = (mmap_function) dlsym (RTLD_NEXT, "mmap");
if (real_func == NULL) {
fprintf (stderr, "Could not find the mmap function!\n");
abort();