소스 검색

Stricter validation for the repositories config

Jordi Boggiano 13 년 전
부모
커밋
1844940a39
1개의 변경된 파일5개의 추가작업 그리고 2개의 파일을 삭제
  1. 5 2
      src/Composer/Package/Loader/ArrayLoader.php

+ 5 - 2
src/Composer/Package/Loader/ArrayLoader.php

@@ -55,10 +55,13 @@ class ArrayLoader
 
         if (isset($config['repositories'])) {
             $repositories = array();
-            foreach ($config['repositories'] as $repo) {
-                if (!$repo) {
+            foreach ($config['repositories'] as $repoName => $repo) {
+                if (false === $repo && 'packagist' === $repoName) {
                     continue;
                 }
+                if (!is_array($repo)) {
+                    throw new \UnexpectedValueException('Repository '.$repoName.' in '.$package->getPrettyName().' '.$package->getVersion().' should be an array, '.gettype($repo).' given');
+                }
                 $repository = $this->manager->createRepository(key($repo), current($repo));
                 $this->manager->addRepository($repository);
             }