com php-src: add new error constant PREG_JIT_STACKLIMIT_E RROR: ext/pcre/php_pcre.c ext/pcre/tests/preg_match _error3.phpt

From: Date: Sun, 26 Jul 2015 21:40:38 +0000
Subject: com php-src: add new error constant PREG_JIT_STACKLIMIT_E RROR: ext/pcre/php_pcre.c ext/pcre/tests/preg_match _error3.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-88231@lists.php.net to get a copy of this message
Commit: e6f55339ccf923390da1ea354631809acb2e3729 Author: Christoph M. Becker <cmbecker69@gmx.de> Sun, 26 Jul 2015 18:33:01 +0200 Parents: 70c6a6f624ec07be37ce90424d0765e3c78d1bf5 Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e6f55339ccf923390da1ea354631809acb2e3729 Log: add new error constant PREG_JIT_STACKLIMIT_ERROR Changed paths: M ext/pcre/php_pcre.c A ext/pcre/tests/preg_match_error3.phpt Diff: diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c index 8e40f84..e57bbd9 100644 --- a/ext/pcre/php_pcre.c +++ b/ext/pcre/php_pcre.c @@ -50,7 +50,8 @@ enum { PHP_PCRE_BACKTRACK_LIMIT_ERROR, PHP_PCRE_RECURSION_LIMIT_ERROR, PHP_PCRE_BAD_UTF8_ERROR, - PHP_PCRE_BAD_UTF8_OFFSET_ERROR + PHP_PCRE_BAD_UTF8_OFFSET_ERROR, + PHP_PCRE_JIT_STACKLIMIT_ERROR }; @@ -77,6 +78,12 @@ static void pcre_handle_exec_error(int pcre_code) /* {{{ */ case PCRE_ERROR_BADUTF8_OFFSET: preg_code = PHP_PCRE_BAD_UTF8_OFFSET_ERROR; break; + +#ifdef PCRE_STUDY_JIT_COMPILE + case PCRE_ERROR_JIT_STACKLIMIT: + preg_code = PHP_PCRE_JIT_STACKLIMIT_ERROR; + break; +#endif default: preg_code = PHP_PCRE_INTERNAL_ERROR; @@ -169,6 +176,7 @@ static PHP_MINIT_FUNCTION(pcre) REGISTER_LONG_CONSTANT("PREG_RECURSION_LIMIT_ERROR", PHP_PCRE_RECURSION_LIMIT_ERROR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PREG_BAD_UTF8_ERROR", PHP_PCRE_BAD_UTF8_ERROR, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PREG_BAD_UTF8_OFFSET_ERROR", PHP_PCRE_BAD_UTF8_OFFSET_ERROR, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("PREG_JIT_STACKLIMIT_ERROR", PHP_PCRE_JIT_STACKLIMIT_ERROR, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("PCRE_VERSION", (char *)pcre_version(), CONST_CS | CONST_PERSISTENT); return SUCCESS; diff --git a/ext/pcre/tests/preg_match_error3.phpt b/ext/pcre/tests/preg_match_error3.phpt new file mode 100644 index 0000000..05a9baa --- /dev/null +++ b/ext/pcre/tests/preg_match_error3.phpt @@ -0,0 +1,10 @@ +--TEST-- +Test preg_match() function : error conditions - jit stacklimit exhausted +--FILE-- +<?php +var_dump(preg_match('/^(foo)+$/', str_repeat('foo', 8192))); +var_dump(preg_last_error() === PREG_JIT_STACKLIMIT_ERROR); +?> +--EXPECT-- +bool(false) +bool(true)

« previous php.cvs (#88231) next »