]> git.kaiwu.me - nginx.git/commitdiff
Core: don't reuse shared memory zone that changed ownership (ticket #210).
authorRuslan Ermilov <ru@nginx.com>
Fri, 23 Nov 2012 12:43:58 +0000 (12:43 +0000)
committerRuslan Ermilov <ru@nginx.com>
Fri, 23 Nov 2012 12:43:58 +0000 (12:43 +0000)
nginx doesn't allow the same shared memory zone to be used for different
purposes, but failed to check this on reconfiguration.  If a shared memory
zone was used for another purpose in the new configuration, nginx attempted
to reuse it and crashed.

src/core/ngx_cycle.c

index f15372990edafd61caaa65608b6e5e7ed04b475f..e8b1559212bc22ce3102f6dbfb5142177842b411 100644 (file)
@@ -447,7 +447,9 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
                 continue;
             }
 
-            if (shm_zone[i].shm.size == oshm_zone[n].shm.size) {
+            if (shm_zone[i].tag == oshm_zone[n].tag
+                && shm_zone[i].shm.size == oshm_zone[n].shm.size)
+            {
                 shm_zone[i].shm.addr = oshm_zone[n].shm.addr;
 
                 if (shm_zone[i].init(&shm_zone[i], oshm_zone[n].data)