the simple expression has the same precision without overflow
diff --git a/src/core/ngx_slab.c b/src/core/ngx_slab.c index daf5639..9f63a91 100644 --- a/src/core/ngx_slab.c +++ b/src/core/ngx_slab.c
@@ -111,10 +111,7 @@ p += n * sizeof(ngx_slab_page_t); - /* STUB: possible overflow on 64-bit platform */ - pages = (ngx_uint_t) ((uint64_t) size * ngx_pagesize - / (ngx_pagesize + sizeof(ngx_slab_page_t)) - / ngx_pagesize); + pages = (ngx_uint_t) (size / (ngx_pagesize + sizeof(ngx_slab_page_t))); ngx_memzero(p, pages * sizeof(ngx_slab_page_t));