Page MenuHomePhorge

Fix PHP 8.1 "strlen(null)" exceptions which block rendering Legalpad signatures
ClosedPublic

Authored by aklapper on May 13 2023, 11:04.
Tags
None
Referenced Files
F3826822: D25226.1746034784.diff
Tue, Apr 29, 17:39
F3825917: D25226.1746030000.diff
Tue, Apr 29, 16:20
F3792914: D25226.1745928122.diff
Mon, Apr 28, 12:02
F3712057: D25226.1745669119.diff
Fri, Apr 25, 12:05
F3675189: D25226.1745503096.diff
Wed, Apr 23, 13:58
F3605363: D25226.1745265796.diff
Sun, Apr 20, 20:03
F3503101: D25226.1744797819.diff
Tue, Apr 15, 10:03
F3433286: D25226.1744669500.diff
Sun, Apr 13, 22:25

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 T15395

Test Plan

Applied these two changes; afterwards "All Signatures" page at /legalpad/signatures/1/ gets rendered in web browser.

Diff Detail

Repository
rP Phorge
Branch
legalViewSigs (branched from master)
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 409
Build 409: arc lint + arc unit

Event Timeline

Thanks for this patch (again!)

I tested this locally with fuzzy tests in the Name Contains and Email Contains input fields, without any nuclear implosion.

The function phutil_nonempty_string() will report any alien value that is not string or null, and I verified that this is OK here.

sgtm

This revision is now accepted and ready to land.May 19 2023, 10:45