1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 14:52:40 +01:00
phorge-arcanist/src/xsprintf
Valerio Bozzolan c14785c379 Fix PHP 8.1 "strpos(null)" exception from PhutilCommandString which blocks arc patch
Summary:
For some reason it may happen that a specific command line argument receives a null argument
from PHP, instead of just an empty string.

Nowadays, this null value probably breaks almost whatever GNU/Linux or FreeBSD or Microsoft Windows
etc. implementations since everyone expect to receive a string.

This used to work in the past since functions like strpos() or strlen() accepted null, but not
anymore. This generate a deprecation warning since PHP 8.1, that is elevated as exception from
Phabricator/Phorge and breaking features.

Without getting into implementation logics (which doesn't make sense to fix all of them) the
calling function should just be kind. So we normalize nonsense null values to an empty string.

Note: this was the expected behavior prior to PHP 8.1.

Now we do that normalization explicitly, in this early point.

After this fix, also T15368 should probably be fixed.

Closes T15367

Test Plan:
- run "arc patch <something valid>"
- to you it must continue to work
- (to @ton it starts working right now)

Reviewers: O1 Blessed Committers, avivey

Reviewed By: O1 Blessed Committers, avivey

Subscribers: speck, tobiaswiese, Matthew, Cigaryno, ton

Maniphest Tasks: T15367

Differential Revision: https://we.phorge.it/D25205
2023-05-09 08:29:00 +02:00
..
__tests__ Provide "gitsprintf(...)" and disambiguate Git ref selectors 2021-01-13 12:31:15 -08:00
exception Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
ArcanistTerminalStringInterface.php Add some support code for printing refs to stdout 2020-04-12 13:44:46 -07:00
csprintf.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
gitsprintf.php Provide "gitsprintf(...)" and disambiguate Git ref selectors 2021-01-13 12:31:15 -08:00
hgsprintf.php Make Mercurial use "hg shelve" and "hg unshelve" in dirty working copies in "arc land" 2020-06-08 16:22:44 -07:00
jsprintf.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
ldapsprintf.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
PhutilCommandString.php Fix PHP 8.1 "strpos(null)" exception from PhutilCommandString which blocks arc patch 2023-05-09 08:29:00 +02:00
PhutilTerminalString.php Add some support code for printing refs to stdout 2020-04-12 13:44:46 -07:00
pregsprintf.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
tsprintf.php In "arc land" under Git, confirm branch creation 2020-06-30 06:29:51 -07:00
urisprintf.php Fully merge "libphutil/" into "arcanist/" 2020-02-12 15:17:38 -08:00
xsprintf.php Annotate the unusual use of "$callback()" in "xsprintf()" 2021-02-03 14:21:08 -08:00