Re: PCRE JIT stack size limit
| From: | Christoph Becker | Date: | Fri, 24 Jul 2015 18:14:40 +0000 |
| Subject: | Re: PCRE JIT stack size limit | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-87275@lists.php.net to get a copy of this message | ||
On 23.07.2015 at 13:07, Christoph Becker wrote:
> PHP7 supports PCRE's JIT compilation of patterns by default, which
> mostly works fine. However, there are issues when the matching exceeds
> the JIT stack limit, see bug #70110[1].
>
> I'm not sure how to solve this best. Basically, I see two possible
> solutions: either we fall back to non JIT matching, if pcre_exec() fails
> with PCRE_ERROR_JIT_STACKLIMIT, or we use a custom JIT stack and make
> its size a configurable ini setting (similar to pcre.backtrack_limit),
> and raise E_WARNING if the matching fails due to limited stack size.
>
> Thoughts?
>
> [1] <https://bugs.php.net/bug.php?id=70110>
Zoltán Herczeg just told me that the size of the JIT stack doesn't have
to be fixed, but rather allows to dynamically grow up to a maximum given
size (preallocated by mmap/VirtualAlloc). I'll do some testing and
report back later.
--
Christoph M. Becker