From 56f24cff9f1c2b7aed81886f93404b055bb90107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Thu, 3 Nov 2022 11:53:51 +0100 Subject: [PATCH 1/2] Avoid a crash when a PHP extension has no version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/private/App/PlatformRepository.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/private/App/PlatformRepository.php b/lib/private/App/PlatformRepository.php index 4166c2ead03b0..9d8d274c7fd1c 100644 --- a/lib/private/App/PlatformRepository.php +++ b/lib/private/App/PlatformRepository.php @@ -50,7 +50,7 @@ protected function initialize(): array { $ext = new \ReflectionExtension($name); try { $prettyVersion = $ext->getVersion(); - $prettyVersion = $this->normalizeVersion($prettyVersion); + $prettyVersion = $this->normalizeVersion($prettyVersion ?? '0'); } catch (\UnexpectedValueException $e) { $prettyVersion = '0'; $prettyVersion = $this->normalizeVersion($prettyVersion); @@ -111,6 +111,9 @@ protected function initialize(): array { continue 2; } + if ($prettyVersion === null) { + continue; + } try { $prettyVersion = $this->normalizeVersion($prettyVersion); } catch (\UnexpectedValueException $e) { From 7af4fea0e3a41f160b83bd48ae16c31b651f9cf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Mon, 7 Nov 2022 10:01:53 +0100 Subject: [PATCH 2/2] Suppress false-positives from psalm, waiting for fix upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/private/App/PlatformRepository.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/private/App/PlatformRepository.php b/lib/private/App/PlatformRepository.php index 9d8d274c7fd1c..9b94c0b07bcc7 100644 --- a/lib/private/App/PlatformRepository.php +++ b/lib/private/App/PlatformRepository.php @@ -50,6 +50,10 @@ protected function initialize(): array { $ext = new \ReflectionExtension($name); try { $prettyVersion = $ext->getVersion(); + /** @psalm-suppress TypeDoesNotContainNull + * @psalm-suppress RedundantCondition + * TODO Remove these annotations once psalm fixes the method signature ( https://github.com/vimeo/psalm/pull/8655 ) + */ $prettyVersion = $this->normalizeVersion($prettyVersion ?? '0'); } catch (\UnexpectedValueException $e) { $prettyVersion = '0';