Commit:    b6fdb60ecf33b3d549d5d69e245b04d68ab3e824
Author:    Stephen A. Zarkos <stephen.zar...@microsoft.com>         Mon, 4 Mar 
2013 09:09:45 +0100
Committer: Anatol Belski <a...@php.net>      Mon, 4 Mar 2013 09:09:45 +0100
Parents:   656fcb67f1edbd2bde1b93577cdc273ad27e0d8f
Branches:  PHP-5.3 PHP-5.4 PHP-5.5 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=b6fdb60ecf33b3d549d5d69e245b04d68ab3e824

Log:
Fixed PCRE locale crash in Windows/TS

Changed paths:
  M  ext/pcre/php_pcre.c


Diff:
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index b9cb4f4..cab3a4c 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -244,11 +244,18 @@ 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;
 
+#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) {


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to