Homestyx hydra
Diffusion hydra 085769ceb687

Fix PHP 8.1 "strlen(null)" exceptions trying to authenticate via custom OAuth…

Description

Fix PHP 8.1 "strlen(null)" exceptions trying to authenticate via custom OAuth provider

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.

This change also replaces two other strlen() calls, only based on reading the code but not based on triggering exceptions.

EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(), ava(), phorge(), wmf-ext-misc()
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/applications/auth/adapter/PhutilOAuth1AuthAdapter.php:121]
EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(), ava(), phorge(), wmf-ext-misc()
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/applications/auth/adapter/PhutilOAuth1AuthAdapter.php:125]

Closes T15588

Test Plan: Go to /auth/login/mediawiki:whatever/ and at least see no strlen() errors anymore (while further issues remain). See T15588 for details.

Reviewers: O1 Blessed Committers, Matthew

Reviewed By: O1 Blessed Committers, Matthew

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

Maniphest Tasks: T15588

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

Details

Provenance
Andre KlapperAuthored on Aug 11 2023, 2:57 PM
sirocylPushed on Oct 16 2024, 5:49 AM
Parents
R1:10ee019785d5: Fix PHP 8.1 "strlen(null)" exception setting Passphrase Credential
Branches
Unknown
Tags
Unknown

Event Timeline