From: Anatol Belski Date: Wed, 6 Dec 2017 15:04:22 +0000 (+0100) Subject: Merge branch 'PHP-7.1' into PHP-7.2 X-Git-Tag: php-7.2.1RC1~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=57f33b4ce269bdd169332d945d85ca96587874b5;p=php Merge branch 'PHP-7.1' into PHP-7.2 * PHP-7.1: Fix yet one data race in PCRE --- 57f33b4ce269bdd169332d945d85ca96587874b5 diff --cc ext/pcre/php_pcre.c index 5ec7f4d902,bf8e02c54b..2fb1133799 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@@ -68,10 -67,10 +68,10 @@@ PHPAPI ZEND_DECLARE_MODULE_GLOBALS(pcre #define PCRE_JIT_STACK_MAX_SIZE (64 * 1024) ZEND_TLS pcre_jit_stack *jit_stack = NULL; #endif - #if defined(ZTS) && defined(HAVE_PCRE_JIT_SUPPORT) + #if defined(ZTS) static MUTEX_T pcre_mt = NULL; -#define php_pcre_mutex_alloc() if (!pcre_mt) pcre_mt = tsrm_mutex_alloc(); -#define php_pcre_mutex_free() if (pcre_mt) tsrm_mutex_free(pcre_mt); pcre_mt = NULL; +#define php_pcre_mutex_alloc() if (tsrm_is_main_thread() && !pcre_mt) pcre_mt = tsrm_mutex_alloc(); +#define php_pcre_mutex_free() if (tsrm_is_main_thread() && pcre_mt) tsrm_mutex_free(pcre_mt); pcre_mt = NULL; #define php_pcre_mutex_lock() tsrm_mutex_lock(pcre_mt); #define php_pcre_mutex_unlock() tsrm_mutex_unlock(pcre_mt); #else