Przeglądaj źródła

Handle OpenSSL version after 26 patch releases

e.g. https://github.com/openssl/openssl/blob/OpenSSL_0_9_8zh/crypto/opensslv.h#L33
Chris Smith 9 lat temu
rodzic
commit
e9e2514b5e
1 zmienionych plików z 12 dodań i 2 usunięć
  1. 12 2
      src/Composer/Repository/PlatformRepository.php

+ 12 - 2
src/Composer/Repository/PlatformRepository.php

@@ -146,8 +146,18 @@ class PlatformRepository extends ArrayRepository
                     break;
 
                 case 'openssl':
-                    $prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]?).*}', function ($match) {
-                        return $match[1] . (empty($match[2]) ? '' : '.'.(ord($match[2]) - 96));
+                    $prettyVersion = preg_replace_callback('{^(?:OpenSSL\s*)?([0-9.]+)([a-z]+).*}', function ($match) {
+                        if (empty($match[2])) {
+                            return $match[1];
+                        }
+
+                        // OpenSSL versions add another letter when they reach Z.
+                        // e.g. OpenSSL 0.9.8zh 3 Dec 2015
+                        $patchVersion = array_sum(array_map(function ($letter) {
+                            return ord($letter) - 96;
+                        }, str_split($match[2])));
+
+                        return $match[1].'.'.$patchVersion;
                     }, OPENSSL_VERSION_TEXT);
                     break;