mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 16:22:43 +01:00
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
This commit is contained in:
parent
2ffbef8820
commit
19d9da7fea
1 changed files with 2 additions and 1 deletions
|
@ -24,7 +24,8 @@ final class PhabricatorStandardCustomFieldInt
|
|||
|
||||
public function getValueForStorage() {
|
||||
$value = $this->getFieldValue();
|
||||
if (strlen($value)) {
|
||||
$is_nonempty = phutil_string_cast($value) !== '';
|
||||
if ($is_nonempty) {
|
||||
return $value;
|
||||
} else {
|
||||
return null;
|
||||
|
|
Loading…
Reference in a new issue