mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
Fixed overflow if ngx_slab_alloc() is called with very big "size" argument.
This commit is contained in:
parent
d469482cda
commit
9d6d33a561
@ -162,8 +162,8 @@ ngx_slab_alloc_locked(ngx_slab_pool_t *pool, size_t size)
|
||||
ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, ngx_cycle->log, 0,
|
||||
"slab alloc: %uz", size);
|
||||
|
||||
page = ngx_slab_alloc_pages(pool, (size + ngx_pagesize - 1)
|
||||
>> ngx_pagesize_shift);
|
||||
page = ngx_slab_alloc_pages(pool, (size >> ngx_pagesize_shift)
|
||||
+ ((size % ngx_pagesize) ? 1 : 0));
|
||||
if (page) {
|
||||
p = (page - pool->pages) << ngx_pagesize_shift;
|
||||
p += (uintptr_t) pool->start;
|
||||
|
Loading…
Reference in New Issue
Block a user