From 81653abb5440109eb82c734d1671753a738dec3a Mon Sep 17 00:00:00 2001 From: Andre Klapper Date: Fri, 3 May 2024 15:09:28 +0200 Subject: [PATCH] Fix PHP 8.1 "strlen(null)" exceptions adding an 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. ``` ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php:140] ``` ``` ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php:155] ``` ``` ERROR 8192: strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [/var/www/html/phorge/phorge/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php:165] ``` Closes T15786 Test Plan: Set up any Auth provider which uses OAuth2 and check the error console. Reviewers: O1 Blessed Committers, speck Reviewed By: O1 Blessed Committers, speck Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T15786 Differential Revision: https://we.phorge.it/D25578 --- .../auth/provider/PhabricatorOAuth2AuthProvider.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php b/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php index 19e85ae7bc..ad34e5afc9 100644 --- a/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php +++ b/src/applications/auth/provider/PhabricatorOAuth2AuthProvider.php @@ -137,7 +137,7 @@ abstract class PhabricatorOAuth2AuthProvider switch ($key) { case self::PROPERTY_APP_ID: - if (strlen($old)) { + if (phutil_nonempty_string($old)) { return pht( '%s updated the OAuth application ID for this provider from '. '"%s" to "%s".', @@ -152,7 +152,7 @@ abstract class PhabricatorOAuth2AuthProvider $new); } case self::PROPERTY_APP_SECRET: - if (strlen($old)) { + if (phutil_nonempty_string($old)) { return pht( '%s updated the OAuth application secret for this provider.', $xaction->renderHandleLink($author_phid)); @@ -162,7 +162,7 @@ abstract class PhabricatorOAuth2AuthProvider $xaction->renderHandleLink($author_phid)); } case self::PROPERTY_NOTE: - if (strlen($old)) { + if (phutil_nonempty_string($old)) { return pht( '%s updated the OAuth application notes for this provider.', $xaction->renderHandleLink($author_phid));