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); }