mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Improve diagnostic on PCRE JIT mmap failure
Print a more informative message that indicates that this is likely a permission issue, and also indicate that pcre.jit=0 can be used to work around it. Also automatically disable the JIT, so that this message is only shown once. See bug #78630.
This commit is contained in:
parent
1ce8c805e2
commit
1d6e9da743
1 changed files with 6 additions and 0 deletions
|
@ -783,6 +783,12 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache(zend_string *regex)
|
|||
if (!pcre2_pattern_info(re, PCRE2_INFO_JITSIZE, &jit_size) && jit_size > 0) {
|
||||
poptions |= PREG_JIT;
|
||||
}
|
||||
} else if (rc == PCRE2_ERROR_NOMEMORY) {
|
||||
php_error_docref(NULL, E_WARNING,
|
||||
"Allocation of JIT memory failed, PCRE JIT will be disabled. "
|
||||
"This is likely caused by security restrictions. "
|
||||
"Either grant PHP permission to allocate executable memory, or set pcre.jit=0");
|
||||
PCRE_G(jit) = 0;
|
||||
} else {
|
||||
pcre2_get_error_message(rc, error, sizeof(error));
|
||||
php_error_docref(NULL, E_WARNING, "JIT compilation failed: %s", error);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue