mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 14:52:41 +01:00
Fix PHP 8.1 "base64_decode(null)" exception calling Conduit's file.upload with no data passed
Summary: Since PHP 8.1, `base64_decode()` does not accept passing null as a parameter. Thus first check that `data !== null` before calling `decodeBase64($data)` (which then calls PHP's `base64_decode()`), and throw an exception if it is. ``` EXCEPTION: (RuntimeException) base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261] arcanist(head=master, ref.master=18554ea76ceb), phorge(head=conduitDashboardPanelEdit, ref.master=0d81da590923, ref.conduitDashboardPanelEdit=ab4391b30465) #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<arcanist>/src/error/PhutilErrorHandler.php:261] #1 <#2> base64_decode(NULL, boolean) called at [<phorge>/src/applications/files/conduit/FileConduitAPIMethod.php:84] ``` Closes T15426 Test Plan: Applied this change; afterwards `/api/file.upload` under "Method Result", "error_info" shows "Unable to decode base64 data!" instead of "base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated" which is more descriptive. Reviewers: O1 Blessed Committers, speck Reviewed By: O1 Blessed Committers, speck Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T15426 Differential Revision: https://we.phorge.it/D25258
This commit is contained in:
parent
7b57ba2b98
commit
108cbcd09b
1 changed files with 3 additions and 1 deletions
|
@ -31,8 +31,10 @@ final class FileUploadConduitAPIMethod extends FileConduitAPIMethod {
|
||||||
$view_policy = $request->getValue('viewPolicy');
|
$view_policy = $request->getValue('viewPolicy');
|
||||||
|
|
||||||
$data = $request->getValue('data_base64');
|
$data = $request->getValue('data_base64');
|
||||||
|
if (!phutil_nonempty_string($data)) {
|
||||||
|
throw new Exception(pht('Field "data_base64" must be non-empty.'));
|
||||||
|
}
|
||||||
$data = $this->decodeBase64($data);
|
$data = $this->decodeBase64($data);
|
||||||
|
|
||||||
$params = array(
|
$params = array(
|
||||||
'authorPHID' => $viewer->getPHID(),
|
'authorPHID' => $viewer->getPHID(),
|
||||||
'canCDN' => $can_cdn,
|
'canCDN' => $can_cdn,
|
||||||
|
|
Loading…
Reference in a new issue