From a07b39def421e312b3ca0c7be5c38b35b9b9a55d Mon Sep 17 00:00:00 2001 From: Valentin Bartenev Date: Mon, 16 Jan 2012 12:42:07 +0000 Subject: [PATCH] Fixed division by zero exception in ngx_hash_init(). The ngx_hash_init() function did not expect call with zero elements count, which caused FPE error on configs with an empty "types" block in http context and "types_hash_max_size" > 10000. Example configuration to reproduce: events { } http { types_hash_max_size 10001; types {} server {} } --- src/core/ngx_hash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/ngx_hash.c b/src/core/ngx_hash.c index 0c7285202..74d89b8b9 100644 --- a/src/core/ngx_hash.c +++ b/src/core/ngx_hash.c @@ -277,7 +277,7 @@ ngx_hash_init(ngx_hash_init_t *hinit, ngx_hash_key_t *names, ngx_uint_t nelts) start = nelts / (bucket_size / (2 * sizeof(void *))); start = start ? start : 1; - if (hinit->max_size > 10000 && hinit->max_size / nelts < 100) { + if (hinit->max_size > 10000 && nelts && hinit->max_size / nelts < 100) { start = hinit->max_size - 1000; }