1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 06:42:41 +01:00

Apply "pcre.*_limit" config options at startup in CLI environments

Summary:
Ref T13100. Ref T13586. These options have been in production for a while and seem to consistently improve behavior, downgrading segfaults to runtime errors.

Make them global options for all CLI environments. See next change for web enviornments.

Test Plan: Ran `arc`.

Maniphest Tasks: T13586, T13100

Differential Revision: https://secure.phabricator.com/D21566
This commit is contained in:
epriestley 2021-02-18 11:16:01 -08:00
parent 9d5802cb9f
commit e95afd1d00

View file

@ -56,6 +56,15 @@ function __arcanist_init_script__() {
// inspect "args", and this option generally obscures useful debugging // inspect "args", and this option generally obscures useful debugging
// information without any benefit in the context of Phabricator. // information without any benefit in the context of Phabricator.
'zend.exception_ignore_args' => 0, 'zend.exception_ignore_args' => 0,
// See T13100. We'd like the regex engine to fail, rather than segfault,
// if handed a pathological regular expression.
'pcre.backtrack_limit' => 10000,
'pcre.recusion_limit' => 10000,
// NOTE: Phabricator applies a similar set of startup options for Web
// environments in "PhabricatorStartup". Changes here may also be
// appropriate to apply there.
); );
foreach ($config_map as $config_key => $config_value) { foreach ($config_map as $config_key => $config_value) {
@ -106,8 +115,6 @@ function __arcanist_init_script__() {
PhutilErrorHandler::initialize(); PhutilErrorHandler::initialize();
PhutilErrorHandler::initialize();
// If "variables_order" excludes "E", silently repair it so that $_ENV has // If "variables_order" excludes "E", silently repair it so that $_ENV has
// the values we expect. // the values we expect.
PhutilExecutionEnvironment::repairMissingVariablesOrder(); PhutilExecutionEnvironment::repairMissingVariablesOrder();