diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 6b21ff1b9533..e6e078dce406 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -532,7 +532,7 @@ def normalize_path(pathname) # :nodoc: ## # Loads a Gem::Specification from the TarEntry +entry+ - def load_spec(entry) # :nodoc: + def load_spec_from_metadata(entry) # :nodoc: limit = 10 * 1024 * 1024 case entry.full_name when "metadata" then @@ -678,12 +678,7 @@ def verify_entry(entry) digest entry end - case file_name - when "metadata", "metadata.gz" then - load_spec entry - when "data.tar.gz" then - verify_gz entry - end + load_spec_from_metadata entry rescue StandardError warn "Exception while verifying #{@gem.path}" raise @@ -711,18 +706,6 @@ def verify_files(gem) end end - ## - # Verifies that +entry+ is a valid gzipped file. - - def verify_gz(entry) # :nodoc: - Zlib::GzipReader.wrap entry do |gzio| - # TODO: read into a buffer once zlib supports it - gzio.read 16_384 until gzio.eof? # gzip checksum verification - end - rescue Zlib::GzipFile::Error => e - raise Gem::Package::FormatError.new(e.message, entry.full_name) - end - if RUBY_ENGINE == "truffleruby" def copy_stream(src, dst, size) # :nodoc: dst.write src.read(size) diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb index 2ad63acd03bb..0c214a232b76 100644 --- a/test/rubygems/test_gem_package.rb +++ b/test/rubygems/test_gem_package.rb @@ -858,7 +858,7 @@ def test_install_location_suffix "#{@destination} is not allowed", e.message) end - def test_load_spec + def test_load_spec_from_metadata entry = StringIO.new Gem::Util.gzip @spec.to_yaml def entry.full_name "metadata.gz" @@ -866,7 +866,7 @@ def entry.full_name package = Gem::Package.new "nonexistent.gem" - spec = package.load_spec entry + spec = package.load_spec_from_metadata entry assert_equal @spec, spec end