Core: introduced the NGX_DEBUG_PALLOC macro.
It allows to turn off accumulation of small pool allocations into a big
preallocated chunk of memory. This is useful for debugging memory access
with sanitizer, since such accumulation can cover buffer overruns from
being detected.
diff --git a/src/core/ngx_palloc.c b/src/core/ngx_palloc.c
index 91e7cd7..d3044ac 100644
--- a/src/core/ngx_palloc.c
+++ b/src/core/ngx_palloc.c
@@ -122,9 +122,11 @@
void *
ngx_palloc(ngx_pool_t *pool, size_t size)
{
+#if !(NGX_DEBUG_PALLOC)
if (size <= pool->max) {
return ngx_palloc_small(pool, size, 1);
}
+#endif
return ngx_palloc_large(pool, size);
}
@@ -133,9 +135,11 @@
void *
ngx_pnalloc(ngx_pool_t *pool, size_t size)
{
+#if !(NGX_DEBUG_PALLOC)
if (size <= pool->max) {
return ngx_palloc_small(pool, size, 0);
}
+#endif
return ngx_palloc_large(pool, size);
}