[nginx] svn commit: r4450 - in branches/stable-1.0: . src/core

mdounin at mdounin.ru mdounin at mdounin.ru
Sun Feb 5 19:27:18 UTC 2012


Author: mdounin
Date: 2012-02-05 19:27:18 +0000 (Sun, 05 Feb 2012)
New Revision: 4450

Log:
Merge of r4405:

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.


Modified:
   branches/stable-1.0/
   branches/stable-1.0/src/core/ngx_hash.c


Property changes on: branches/stable-1.0
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:3960-3974,3977-3987,3991-3996,3998,4000-4018,4020,4023,4025-4027,4034-4065,4073,4077,4086-4090,4094-4102,4106-4108,4113-4114,4129-4137,4143-4144,4147-4158,4177,4179,4182-4184,4186-4187,4189-4205,4207,4209-4210,4212,4217-4223,4227-4232,4235-4237,4265-4268,4270,4274-4276,4278-4280,4282-4284,4294-4295,4298,4300-4309,4313,4315,4320-4321,4326-4327,4335-4336,4338-4343,4372-4375,4377,4379,4381-4385,4393,4396,4398,4400-4404,4415
   + /trunk:3960-3974,3977-3987,3991-3996,3998,4000-4018,4020,4023,4025-4027,4034-4065,4073,4077,4086-4090,4094-4102,4106-4108,4113-4114,4129-4137,4143-4144,4147-4158,4177,4179,4182-4184,4186-4187,4189-4205,4207,4209-4210,4212,4217-4223,4227-4232,4235-4237,4265-4268,4270,4274-4276,4278-4280,4282-4284,4294-4295,4298,4300-4309,4313,4315,4320-4321,4326-4327,4335-4336,4338-4343,4372-4375,4377,4379,4381-4385,4393,4396,4398,4400-4405,4415

Modified: branches/stable-1.0/src/core/ngx_hash.c
===================================================================
--- branches/stable-1.0/src/core/ngx_hash.c	2012-02-05 19:25:24 UTC (rev 4449)
+++ branches/stable-1.0/src/core/ngx_hash.c	2012-02-05 19:27:18 UTC (rev 4450)
@@ -277,7 +277,7 @@
     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;
     }
 



More information about the nginx-devel mailing list