Homestyx hydra
Diffusion hydra 19d9da7feae9

Fix PHP 8.1 "strlen(null)" exception which blocks Working Copy blueprint…

Description

Fix PHP 8.1 "strlen(null)" exception which blocks Working Copy blueprint creation in Drydock

Summary:
strlen() was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. So, we adopt an explicit cast to string
in order to answer the question "Is this a non-empty string?" without relying on implicit
cast and deprecated things.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_string_cast() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

Closes T15409

Test Plan:
Applied this change and afterwards, selecting "Working Copy" on /drydock/blueprint/edit/form/default/ does not show a RuntimeException on strlen() anymore. Instead, it shows a PhutilAggregateException covered in T15408.

Try also creating an integer "Custom Field" in some applications like Maniphest (maniphest.custom-field-definitions)
or in the People component (user.custom-field-definitions) etc., populating the related forms with your usual fuzzy tests.

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

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

Maniphest Tasks: T15409

Differential Revision: https://we.phorge.it/D25235

Details

Provenance
Andre KlapperAuthored on May 23 2023, 5:58 AM
sirocylPushed on Oct 16 2024, 5:49 AM
Parents
R1:2ffbef882038: Fix PHP 8.1 "trim(null)" exception which blocks rendering Reports' Burnup Rate…
Branches
Unknown
Tags
Unknown

Event Timeline