mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-29 02:02:41 +01:00
Fix PHP 8.1 "preg_match(null)" exception on "Create Revision" page in Differential when not entering data
Summary: `preg_match()` does not accept passing null as the `$subject` string parameter in PHP 8.1. Thus add a `phutil_nonempty_string()` check if the `$subject` parameter is a non-empty string. Note: this may highlight other absurd input values that might be worth correcting instead of just ignoring. If phutil_nonempty_string() throws an exception in your instance, report it to Phorge to evaluate and fix that specific corner case. ``` EXCEPTION: (RuntimeException) preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261] arcanist(head=master, ref.master=18554ea76ceb), phorge(head=diffAttach, ref.master=e11c5486c92b, ref.diffAttach=e11c5486c92b) #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/error/PhutilErrorHandler.php:261] #1 <#2> preg_match(string, NULL, NULL) called at [<phorge>/src/applications/differential/editor/DifferentialTransactionEditor.php:221] ``` Closes T15431 Test Plan: After applying this change on top of D25262, going to `/differential/diff/create/`, creating a diff, and entering nothing on the "Create Revision" page on `/differential/revision/attach/1/to/` correctly shows the errors "You must provide a test plan. Describe the actions you performed to verify the behavior of this change. Revisions must have a title." in web browser instead of an exception. Reviewers: O1 Blessed Committers, speck Reviewed By: O1 Blessed Committers, speck Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T15431 Differential Revision: https://we.phorge.it/D25263
This commit is contained in:
parent
b3894bc2c6
commit
44a8a1c408
1 changed files with 1 additions and 1 deletions
|
@ -218,7 +218,7 @@ final class DifferentialTransactionEditor
|
||||||
|
|
||||||
// No "$", to allow for branches like T123_demo.
|
// No "$", to allow for branches like T123_demo.
|
||||||
$match = null;
|
$match = null;
|
||||||
if (preg_match('/^T(\d+)/i', $branch, $match)) {
|
if ($branch !== null && preg_match('/^T(\d+)/i', $branch, $match)) {
|
||||||
$task_id = $match[1];
|
$task_id = $match[1];
|
||||||
$tasks = id(new ManiphestTaskQuery())
|
$tasks = id(new ManiphestTaskQuery())
|
||||||
->setViewer($this->getActor())
|
->setViewer($this->getActor())
|
||||||
|
|
Loading…
Reference in a new issue