fix: Drop workarounds for unsupported obsolete PHP versionspull/45036/merge
@@ -30,7 +30,6 @@ | |||
namespace OC\App; | |||
use OCP\ICache; | |||
use function libxml_disable_entity_loader; | |||
use function simplexml_load_string; | |||
class InfoParser { | |||
@@ -59,13 +58,7 @@ class InfoParser { | |||
} | |||
libxml_use_internal_errors(true); | |||
if ((PHP_VERSION_ID < 80000)) { | |||
$loadEntities = libxml_disable_entity_loader(false); | |||
$xml = simplexml_load_string(file_get_contents($file)); | |||
libxml_disable_entity_loader($loadEntities); | |||
} else { | |||
$xml = simplexml_load_string(file_get_contents($file)); | |||
} | |||
$xml = simplexml_load_string(file_get_contents($file)); | |||
if ($xml === false) { | |||
libxml_clear_errors(); |
@@ -281,10 +281,6 @@ 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); | |||
// 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 | |||
@@ -305,6 +301,15 @@ class Installer { | |||
$folders = array_diff($allFiles, ['.', '..']); | |||
$folders = array_values($folders); | |||
if (count($folders) < 1) { | |||
throw new \Exception( | |||
sprintf( | |||
'Extracted app %s has no folders', | |||
$appId | |||
) | |||
); | |||
} | |||
if (count($folders) > 1) { | |||
throw new \Exception( | |||
sprintf( | |||
@@ -315,13 +320,17 @@ class Installer { | |||
} | |||
// Check if appinfo/info.xml has the same app ID as well | |||
if ((PHP_VERSION_ID < 80000)) { | |||
$loadEntities = libxml_disable_entity_loader(false); | |||
$xml = simplexml_load_string(file_get_contents($extractDir . '/' . $folders[0] . '/appinfo/info.xml')); | |||
libxml_disable_entity_loader($loadEntities); | |||
} else { | |||
$xml = simplexml_load_string(file_get_contents($extractDir . '/' . $folders[0] . '/appinfo/info.xml')); | |||
$xml = simplexml_load_string(file_get_contents($extractDir . '/' . $folders[0] . '/appinfo/info.xml')); | |||
if ($xml === false) { | |||
throw new \Exception( | |||
sprintf( | |||
'Failed to load info.xml for app id %s', | |||
$appId, | |||
) | |||
); | |||
} | |||
if ((string)$xml->id !== $appId) { | |||
throw new \Exception( | |||
sprintf( |
@@ -294,8 +294,7 @@ class OC_Image implements \OCP\IImage { | |||
$retVal = imagegif($this->resource, $filePath); | |||
break; | |||
case IMAGETYPE_JPEG: | |||
/** @psalm-suppress InvalidScalarArgument */ | |||
imageinterlace($this->resource, (PHP_VERSION_ID >= 80000 ? true : 1)); | |||
imageinterlace($this->resource, true); | |||
$retVal = imagejpeg($this->resource, $filePath, $this->getJpegQuality()); | |||
break; | |||
case IMAGETYPE_PNG: |
@@ -73,7 +73,7 @@ class App { | |||
*/ | |||
public function __construct(string $appName, array $urlParams = []) { | |||
$runIsSetupDirectly = \OC::$server->getConfig()->getSystemValueBool('debug') | |||
&& (PHP_VERSION_ID < 70400 || (PHP_VERSION_ID >= 70400 && !ini_get('zend.exception_ignore_args'))); | |||
&& !ini_get('zend.exception_ignore_args'); | |||
if ($runIsSetupDirectly) { | |||
$applicationClassName = get_class($this); |
@@ -149,8 +149,7 @@ class ImageTest extends \Test\TestCase { | |||
$img = new \OC_Image(null, null, $config); | |||
$img->loadFromFile(OC::$SERVERROOT.'/tests/data/testimage.jpg'); | |||
$raw = imagecreatefromstring(file_get_contents(OC::$SERVERROOT.'/tests/data/testimage.jpg')); | |||
/** @psalm-suppress InvalidScalarArgument */ | |||
imageinterlace($raw, (PHP_VERSION_ID >= 80000 ? true : 1)); | |||
imageinterlace($raw, true); | |||
ob_start(); | |||
imagejpeg($raw, null, 80); | |||
$expected = ob_get_clean(); |