Page MenuHomePhorge

Fix PHP 8.1 "strlen(null)" exceptions creating an OAuth provider
ClosedPublic

Authored by aklapper on Aug 11 2024, 21:00.

Details

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.

ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuth1AuthProvider.php:163]
ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuth1AuthProvider.php:178]
ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuthAuthProvider.php:147]

Closes T15912

Test Plan

As an admin, create an OAuth provider (such as using Bitbucket) and check the error logs or Dark Console.

Diff Detail

Repository
rP Phorge
Branch
oauthStrlen
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 1515
Build 1515: arc lint + arc unit