瀏覽代碼

Only allow platform packages to be overridden.

As defined by the PlatformRepository::PLATFORM_PACKAGE_REGEX pattern.
Joakim Israelsson 11 年之前
父節點
當前提交
ac89a5bb3b
共有 1 個文件被更改,包括 10 次插入4 次删除
  1. 10 4
      src/Composer/Repository/PlatformRepository.php

+ 10 - 4
src/Composer/Repository/PlatformRepository.php

@@ -41,10 +41,16 @@ class PlatformRepository extends ArrayRepository
         // Add each of the override versions as options.
         // Later we might even replace the extensions instead.
         foreach( $this->overrides as $name => $prettyVersion ) {
-            $version = $versionParser->normalize($prettyVersion);
-            $package = new CompletePackage($name, $version, $prettyVersion);
-            $package->setDescription("Overridden virtual platform package $name.");
-            parent::addPackage($package);
+            // Check that it's a platform package.
+            if( preg_match(self::PLATFORM_PACKAGE_REGEX, $name) ) {
+                $version = $versionParser->normalize($prettyVersion);
+                $package = new CompletePackage($name, $version, $prettyVersion);
+                $package->setDescription("Overridden virtual platform package $name.");
+                parent::addPackage($package);
+            }
+            else {
+                throw new \UnexpectedValueException('Invalid platform package "'.$name);
+            }
         }