diff --git a/src/pool.c b/src/pool.c index eb1484ba1..af46b4469 100644 --- a/src/pool.c +++ b/src/pool.c @@ -438,12 +438,8 @@ void pool_gc(struct pool_head *pool_ctx) void *pool_alloc_area_uaf(size_t size) { size_t pad = (4096 - size) & 0xFF0; - int isolated; void *ret; - isolated = thread_isolated(); - if (!isolated) - thread_harmless_now(); ret = mmap(NULL, (size + 4095) & -4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); if (ret != MAP_FAILED) { /* let's dereference the page before returning so that the real @@ -456,8 +452,6 @@ void *pool_alloc_area_uaf(size_t size) } else { ret = NULL; } - if (!isolated) - thread_harmless_end(); return ret; } @@ -474,9 +468,7 @@ void pool_free_area_uaf(void *area, size_t size) if (pad >= sizeof(void *) && *(void **)(area - sizeof(void *)) != area) ABORT_NOW(); - thread_harmless_now(); munmap(area - pad, (size + 4095) & -4096); - thread_harmless_end(); } #endif /* DEBUG_UAF */