Homestyx hydra
Diffusion hydra 7040bd525764

Fix PHP 8.1 "strlen(null)" exception adding "Build with Buildkite" build step…

Description

Fix PHP 8.1 "strlen(null)" exception adding "Build with Buildkite" build step in Harbormaster

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. Phorge adopts phutil_nonempty_string() as a replacement.

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

EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=customOAuthUrlencodeNull, ref.master=788098096e11, ref.customOAuthUrlencodeNull=4f0f2043b7e9), phorge(head=master, ref.master=226f3150933d)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/infrastructure/customfield/standard/PhabricatorStandardCustomField.php:271]

Closes T15594

Test Plan: Add a build step in Harbormaster, select "Interacting with External Build Systems > Build with Buildkite" at /harbormaster/step/new/1/HarbormasterBuildkiteBuildStepImplementation/, select the "Create Build Step" button. Page now shows several expected error messages (API Token is required; Organization Name is required; etc) instead of a PHP error.

Reviewers: O1 Blessed Committers, Matthew

Reviewed By: O1 Blessed Committers, Matthew

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

Maniphest Tasks: T15594

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

Details

Provenance
Andre KlapperAuthored on Aug 15 2023, 4:15 AM
sirocylPushed on Oct 16 2024, 5:49 AM
Parents
R1:bcfcd9acfc12: Unify type-checking for `setHref()` type methods
Branches
Unknown
Tags
Unknown

Event Timeline