summaryrefslogtreecommitdiff
path: root/ext/pcre/php_pcre.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pcre/php_pcre.c')
-rw-r--r--ext/pcre/php_pcre.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index 6a5a74de9c..68b112ab8f 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -544,6 +544,7 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
int esc_match_len; /* Length of the quote-escaped match */
int result_len; /* Length of the result of the evaluation */
int backref; /* Current backref */
+ char *compiled_string_description;
CLS_FETCH();
ELS_FETCH();
@@ -578,11 +579,14 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
}
}
+ compiled_string_description = zend_make_compiled_string_description("regexp code");
/* Run the code */
- if (zend_eval_string(code, &retval CLS_CC ELS_CC) == FAILURE) {
+ if (zend_eval_string(code, &retval, compiled_string_description CLS_CC ELS_CC) == FAILURE) {
+ efree(compiled_string_description);
zend_error(E_ERROR, "Failed evaluating code:\n%s\n", code);
/* zend_error() does not return in this case */
}
+ efree(compiled_string_description);
convert_to_string(&retval);
/* Save the return value and its length */