summaryrefslogtreecommitdiff
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
commit090bb97555a9ddfb3d94f5fcf2901f7b158c1d16 (patch)
tree45496f5911d0a36a0ed5f8f0b8b1adedf0010e11
parent0f0261e0b705a3a1610f9fea214cd8cf0b8b13cb (diff)
downloadphp-git-090bb97555a9ddfb3d94f5fcf2901f7b158c1d16.tar.gz
Safer way to call pcre_fullinfo - bug 60986
-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 fc96ef6bef..c9d707280c 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