From 486fc95b29fd1acbe890f5d04d6daa971033ad4e Mon Sep 17 00:00:00 2001 From: Zero King Date: Mon, 13 Nov 2023 01:55:01 +0800 Subject: [PATCH] Fix reentrancy guard in setDebugTimeLimit() Summary: $initialized is never initialized and onDebugTick() may be registered multiple times. Test Plan: None. The function is normally only called once. Reviewers: O1 Blessed Committers, speck Reviewed By: O1 Blessed Committers, speck Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Differential Revision: https://we.phorge.it/D25469 --- support/startup/PhabricatorStartup.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/support/startup/PhabricatorStartup.php b/support/startup/PhabricatorStartup.php index b9d659d39b..b4a4314ac0 100644 --- a/support/startup/PhabricatorStartup.php +++ b/support/startup/PhabricatorStartup.php @@ -261,10 +261,11 @@ final class PhabricatorStartup { public static function setDebugTimeLimit($limit) { self::$debugTimeLimit = $limit; - static $initialized; + static $initialized = false; if (!$initialized) { declare(ticks=1); register_tick_function(array(__CLASS__, 'onDebugTick')); + $initialized = true; } } -- 2.51.2