]> git.kaiwu.me - nginx.git/commitdiff
Core: fixed potential buffer overrun when initializing hash.
authorMaxim Dounin <mdounin@mdounin.ru>
Tue, 24 Feb 2015 15:37:14 +0000 (18:37 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Tue, 24 Feb 2015 15:37:14 +0000 (18:37 +0300)
Initial size as calculated from the number of elements may be bigger
than max_size.  If this happens, make sure to set size to max_size.

Reported by Chris West.

src/core/ngx_hash.c

index 65ad83947964be426de7a16a8d0c0c9d460624de..e707c09984218716c23fabfa5183df4bec934938 100644 (file)
@@ -312,7 +312,7 @@ ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts)
         continue;
     }
 
-    size--;
+    size = hinit->max_size;
 
     ngx_log_error(NGX_LOG_WARN, hinit->pool->log, 0,
                   "could not build optimal %s, you should increase "