diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index 2383b2dd3..0184cb4d5 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -126,7 +126,9 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); - $zip->open($file->getPathname()); + if ($zip->open($file->getPathname()) !== true) { + return false; + } if (0 == $zip->numFiles) { $zip->close(); diff --git a/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip b/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip new file mode 100644 index 000000000..562f032d4 Binary files /dev/null and b/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip differ