Page MenuHomePhorge

Fix PHP 8.1 "strlen(null)" exceptions setting up Username/Password Authentication Provider
ClosedPublic

Authored by aklapper on May 10 2023, 18:09.
Tags
None
Referenced Files
F3299456: D25216.1743022317.diff
Tue, Mar 25, 20:51
F3297473: D25216.1742985788.diff
Tue, Mar 25, 10:43
F3294946: D25216.1742947096.diff
Mon, Mar 24, 23:58
F3288988: D25216.1742839119.diff
Sun, Mar 23, 17:58
F3288932: D25216.1742838654.diff
Sun, Mar 23, 17:50
F3284771: D25216.1742785819.diff
Sun, Mar 23, 03:10
F3252587: D25216.1742394763.diff
Tue, Mar 18, 14:32
F3224950: D25216.1742089837.diff
Sat, Mar 15, 01:50

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.

Closes T15383

Test Plan

Applied these two changes; afterwards "Username/Password" page at /auth/config/view/1/ gets rendered in web browser.

Additional tests (you need D25231 to complete this test plan):

  • Create WordPress Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Twitter Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Amazon Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Asana Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Bitbucket Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Disqus Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Disqus Auth; Edit; Disable Enable (and Disable again to cleanup)
  • Create Facebook Auth; Edit; Disable Enable (and Disable again to cleanup)
  • Create GitHub Auth; Edit; Disable Enable (and Disable again to cleanup)
  • Create JIRA Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Google Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create LDAP Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Phorge Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Slack Auth; Edit; Disable; Enable (and Disable again to cleanup)
  • Create Twitch.tv Auth; Edit; Disable; Enable (and Disable again to cleanup)

Diff Detail

Repository
rP Phorge
Branch
arcpatch-D25216_2
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 418
Build 418: arc lint + arc unit

Event Timeline

Thanks for this patch (again)!

Believe me or not but I tested this intensively, following the test plan. If you don't believe me:

Phorge Auth providers used.png (1×869 px, 172 KB)

I hope this will not explode in the future like a nuclear bomb as we usually see then.

sgtm

This revision is now accepted and ready to land.May 19 2023, 15:30