summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2021-04-26 20:41:49 +0200
committerGitHub <noreply@github.com>2021-04-26 20:41:49 +0200
commite075f80f413a4687004700b24e42b58f75bb51a2 (patch)
tree2a9dc1f6194bdc4a578e6baa7eadafac6e55fa7b /lib
parentc4acfa74e3265e0c5d2092c3ce0e12b04cc0093a (diff)
parent63fa7d93540fcc415d3a1069da4fb93f15ad08c0 (diff)
downloadnextcloud-server-e075f80f413a4687004700b24e42b58f75bb51a2.tar.gz
nextcloud-server-e075f80f413a4687004700b24e42b58f75bb51a2.zip
Merge pull request #26759 from nextcloud/backport/26747/stable21
[stable21] Fix installer deprecation warnings for PHP 8
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Installer.php15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/private/Installer.php b/lib/private/Installer.php
index 2a0fdab87ff..7b9706f65af 100644
--- a/lib/private/Installer.php
+++ b/lib/private/Installer.php
@@ -309,7 +309,10 @@ class Installer {
// Check if the signature actually matches the downloaded content
$certificate = openssl_get_publickey($app['certificate']);
$verified = (bool)openssl_verify(file_get_contents($tempFile), base64_decode($app['releases'][0]['signature']), $certificate, OPENSSL_ALGO_SHA512);
- openssl_free_key($certificate);
+ // PHP 8+ deprecates openssl_free_key and automatically destroys the key instance when it goes out of scope
+ if ((PHP_VERSION_ID < 80000)) {
+ openssl_free_key($certificate);
+ }
if ($verified === true) {
// Seems to match, let's proceed
@@ -341,9 +344,13 @@ class Installer {
}
// Check if appinfo/info.xml has the same app ID as well
- $loadEntities = libxml_disable_entity_loader(false);
- $xml = simplexml_load_file($extractDir . '/' . $folders[0] . '/appinfo/info.xml');
- libxml_disable_entity_loader($loadEntities);
+ if ((PHP_VERSION_ID < 80000)) {
+ $loadEntities = libxml_disable_entity_loader(false);
+ $xml = simplexml_load_file($extractDir . '/' . $folders[0] . '/appinfo/info.xml');
+ libxml_disable_entity_loader($loadEntities);
+ } else {
+ $xml = simplexml_load_file($extractDir . '/' . $folders[0] . '/appinfo/info.xml');
+ }
if ((string)$xml->id !== $appId) {
throw new \Exception(
sprintf(