diff --git a/src/Composer/Platform/Version.php b/src/Composer/Platform/Version.php index 1ad22c3ed2af..6e5dba2162d1 100644 --- a/src/Composer/Platform/Version.php +++ b/src/Composer/Platform/Version.php @@ -28,7 +28,7 @@ public static function parseOpenssl(string $opensslVersion, ?bool &$isFips): ?st { $isFips = false; - if (!Preg::isMatch('/^(?[0-9.]+)(?[a-z]{0,2})?(?(?:-?(?:dev|pre|alpha|beta|rc|fips)[\d]*)*)?(?-\w+)?$/', $opensslVersion, $matches)) { + if (!Preg::isMatch('/^(?[0-9.]+)(?[a-z]{0,2})?(?(?:-?(?:dev|pre|alpha|beta|rc|fips)[\d]*)*)?(?-\w+)?(? \(.+?\))?$/', $opensslVersion, $matches)) { return null; } diff --git a/tests/Composer/Test/Platform/VersionTest.php b/tests/Composer/Test/Platform/VersionTest.php index 00497ef94107..c6ed62ecd9b5 100644 --- a/tests/Composer/Test/Platform/VersionTest.php +++ b/tests/Composer/Test/Platform/VersionTest.php @@ -62,6 +62,7 @@ public static function provideOpenSslVersions(): array // Additional cases array('1.2.3zh-fips-rc3', '1.2.3.34-rc3', true, '1.2.3.34-RC3'), array('1.2.3zh-alpha10-fips', '1.2.3.34-alpha10', true), + array('1.1.1l (Schannel)', '1.1.1.12'), // Check that alphabetical patch levels overflow correctly array('1.2.3', '1.2.3.0'), array('1.2.3a', '1.2.3.1'),