1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-21 22:32:41 +01:00
No description
Find a file
Andre Klapper 084303cd5f Fix PHP 8.1 "preg_match()" exception when pasting malformed Raw Diff into "Create Diff"
Summary:
Entering a malformed string (like `"pHoRgE rOcKs!!"`) into the "Raw Diff" field, Arcanist's `tryMatchHeader()` function is first called in `$ok = $this->tryMatchHeader($patterns, $line, $match)` with a non-null `$line` value (the first line entered in the "Raw Diff" field) being passed.

Afterwards, `tryMatchHeader()` is called for a second time after assigning `$line = $this->nextLineThatLooksLikeDiffStart()`.
This time `$line` is null and a RuntimeException is thrown, as `tryMatchHeader()` calls `preg_match()` which 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 (in this case, `$line`) is a non-empty string.

Arcanist's `tryMatchHeader()` function is not called outside of the file in which it is defined.
Thus catch the exception in the second call to `tryMatchHeader()` and not in the code of the `tryMatchHeader()` function itself.

Closes T15338

Test Plan: After adding the additional check, `/differential/diff/create/` showed the expected `Diff Parse Exception` instead.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15338

Differential Revision: https://we.phorge.it/D25183
2023-05-04 10:56:23 +02:00
bin When "ArcanistRuntime" exits with a nonzero exit code, emit that exit code 2020-02-27 06:17:02 -08:00
externals Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
resources Update the extracted cURL SSL CA bundle 2021-12-02 14:56:16 -08:00
scripts Remove all product name literals in "pht()" in Arcanist 2022-04-25 12:21:31 -07:00
src Fix PHP 8.1 "preg_match()" exception when pasting malformed Raw Diff into "Create Diff" 2023-05-04 10:56:23 +02:00
support Update arc-hg to support mercurial 6.1 2022-03-11 13:10:39 -05:00
.arcconfig Arcanist Update .arcconfig to point to we.phorge.it 2021-06-19 18:10:39 +00:00
.arclint Add new "Hardpoint" classes to support request parallelization 2020-04-08 09:23:50 -07:00
.arcunit Rough version of configuration driven unit test engine 2015-08-11 06:54:16 +10:00
.editorconfig Test XHPAST linter rules in isolation 2015-11-19 08:57:23 +11:00
.gitignore Allow "hg arc-ls-markers" to run under Python 2 or Python 3 2020-07-06 15:29:35 -07:00
LICENSE Fix text lint issues 2015-04-07 18:09:27 +10:00
NOTICE Remove duplicate newline 2014-07-17 08:25:22 +10:00
README.md Update arcanist readme to reference Phorge 2021-06-20 15:20:47 -06:00

Arcanist is the command-line tool for Phorge. It allows you to interact with Phorge installs to send code for review, download patches, transfer files, view status, make API calls, and various other things. You can read more in the User Guide

For more information about Phorge, see https://phorge.it/.

LICENSE

Arcanist is released under the Apache 2.0 license except as otherwise noted.