summaryrefslogtreecommitdiff
path: root/ext/pcre/php_pcre.c
diff options
context:
space:
mode:
authorRasmus Lerdorf <rasmus@php.net>2012-02-06 18:18:53 +0000
committerRasmus Lerdorf <rasmus@php.net>2012-02-06 18:18:53 +0000
commit4ecfa5abf5d5cb47677565808bdd15dfb25e39b5 (patch)
tree73d568e0e1885ff3b282433ca0660a363d7c3103 /ext/pcre/php_pcre.c
parent0f6e3408db4d8fd96e24459389b06dc7a6e40ee2 (diff)
downloadphp-git-4ecfa5abf5d5cb47677565808bdd15dfb25e39b5.tar.gz
Safer way to call pcre_fullinfo - bug 60986
Diffstat (limited to 'ext/pcre/php_pcre.c')
-rw-r--r--ext/pcre/php_pcre.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index f7d04049b4..b1b9e66e9a 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -241,6 +241,7 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(char *regex, int regex_le
char *pattern;
int do_study = 0;
int poptions = 0;
+ int count = 0;
unsigned const char *tables = NULL;
#if HAVE_SETLOCALE
char *locale = setlocale(LC_CTYPE, NULL);
@@ -255,7 +256,7 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(char *regex, int regex_le
* We use a quick pcre_fullinfo() check to see whether cache is corrupted, and if it
* is, we flush it and compile the pattern from scratch.
*/
- if (pcre_fullinfo(pce->re, NULL, NULL, NULL) == PCRE_ERROR_BADMAGIC) {
+ if (pcre_fullinfo(pce->re, NULL, PCRE_INFO_CAPTURECOUNT, &count) == PCRE_ERROR_BADMAGIC) {
zend_hash_clean(&PCRE_G(pcre_cache));
} else {
#if HAVE_SETLOCALE