diff options
author | Anatol Belski <ab@php.net> | 2013-03-04 09:15:17 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2013-03-04 09:15:17 +0100 |
commit | 2635408a0d2bafe7dbeafab58fa6d046b706bf97 (patch) | |
tree | 25201c2dd86e1bfe84f5056655d5ad331b1fa400 /ext/pcre/php_pcre.c | |
parent | b65d4d1cfc35af5aa43802501b3b50a81754b657 (diff) | |
parent | 4e46a873923b9a608cd2cdcef98ec7faad749d0e (diff) | |
download | php-git-2635408a0d2bafe7dbeafab58fa6d046b706bf97.tar.gz |
Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
Fixed PCRE locale crash in Windows/TS
Diffstat (limited to 'ext/pcre/php_pcre.c')
-rw-r--r-- | ext/pcre/php_pcre.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 2ca0d5e168..b1ee89a8a4 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -244,12 +244,19 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(char *regex, int regex_le int count = 0; unsigned const char *tables = NULL; #if HAVE_SETLOCALE - char *locale = setlocale(LC_CTYPE, NULL); + char *locale; #endif pcre_cache_entry *pce; pcre_cache_entry new_entry; char *tmp = NULL; +#if HAVE_SETLOCALE +# ifdef PHP_WIN32 && ZTS + _configthreadlocale(_ENABLE_PER_THREAD_LOCALE); +# endif + locale = setlocale(LC_CTYPE, NULL); +#endif + /* Try to lookup the cached regex entry, and if successful, just pass back the compiled pattern, otherwise go on and compile it. */ if (zend_hash_find(&PCRE_G(pcre_cache), regex, regex_len+1, (void **)&pce) == SUCCESS) { |