Using BSD new PROT_MAX mmap to block page address wider promotions

This commit is contained in:
David Carlier 2019-07-01 06:56:16 +00:00
parent 5dfced26c2
commit bed746d7d6

View File

@ -105,7 +105,11 @@ static void* mi_mmap(void* addr, size_t size, int extra_flags, mi_stats_t* stats
flags |= MAP_FIXED; flags |= MAP_FIXED;
#endif #endif
} }
p = mmap(addr, size, (PROT_READ | PROT_WRITE), flags, -1, 0); int pflags = PROT_READ | PROT_WRITE;
#if defined(PROT_MAX)
pflags |= PROT_MAX(PROT_READ | PROT_WRITE); // BSD
#endif
p = mmap(addr, size, pflags, flags, -1, 0);
if (p == MAP_FAILED) p = NULL; if (p == MAP_FAILED) p = NULL;
if (addr != NULL && p != addr) { if (addr != NULL && p != addr) {
mi_munmap(p, size); mi_munmap(p, size);