1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 05:50:55 +01:00

Fix PHP 8.1 "ltrim(null)" exception which blocks rendering first Meme comment

Summary:
Since PHP 8.1, passing a null string to `ltrim(string $string)` is deprecated.

Thus first check if After and Below text are not null before trimming.

Closes T15379

Test Plan:
Applied this change; afterwards several times created a new Pholio mock and added a Meme comment. I could not reproduce the problem anymore (first meme comment in a mock always rendered correctly instead of showing an exception as comment). However, I could not reliably reproduce the problem anyway.

- Create a meme without any above/below text
- Create a meme with just spaces as above/below text
- Create a meme with just above text as "asd", or "0" or a lizard
- Create a meme with just below text as "asd", or "0" or a lizard
- Create a meme with both above and below texts with "asd", "0" and a lizard and more stuff (doing all 64 combinations)

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

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

Maniphest Tasks: T15379

Differential Revision: https://we.phorge.it/D25212
This commit is contained in:
Andre Klapper 2023-06-10 18:40:00 +02:00
parent 76ef9db8a5
commit b4cfe56f03

View file

@ -182,7 +182,8 @@ final class PhabricatorMemeEngine extends Phobject {
// changes to the image.
$above_text = $this->getAboveText();
$below_text = $this->getBelowText();
if (!strlen(trim($above_text)) && !strlen(trim($below_text))) {
if (($above_text === null || !phutil_nonempty_string(trim($above_text))) &&
($below_text === null || !phutil_nonempty_string(trim($below_text)))) {
return $template_data;
}