move accel_shared_globals assignment into locked block
authorAnatol Belski <ab@php.net>
Thu, 24 Sep 2015 10:46:54 +0000 (12:46 +0200)
committerAnatol Belski <ab@php.net>
Thu, 24 Sep 2015 14:33:57 +0000 (16:33 +0200)
this might fix crashes under high concurrency

ext/opcache/ZendAccelerator.c

index 2bbfb44481a97c72a45b431421d876558a1fa706..c09b08d9b8e60753a868b741a1a2dc30fe26bc5c 100644 (file)
@@ -2630,8 +2630,8 @@ static int accel_startup(zend_extension *extension)
                                zend_accel_error(ACCEL_LOG_FATAL, "Failure to initialize shared memory structures - probably not enough shared memory.");
                                return SUCCESS;
                        case SUCCESSFULLY_REATTACHED:
-                               accel_shared_globals = (zend_accel_shared_globals *) ZSMMG(app_shared_globals);
                                zend_shared_alloc_lock();
+                               accel_shared_globals = (zend_accel_shared_globals *) ZSMMG(app_shared_globals);
                                orig_new_interned_string = zend_new_interned_string;
                                orig_interned_strings_snapshot = zend_interned_strings_snapshot;
                                orig_interned_strings_restore = zend_interned_strings_restore;