From 82b86b4c97963d25c4e8ba12aab327d47c1f5861 Mon Sep 17 00:00:00 2001 From: Ellen Marie Dash Date: Thu, 30 Jun 2022 20:28:33 -0400 Subject: [rubygems/rubygems] Delete partial file and re-raise on Errno::ENOSPC. Add test for not leaving empty files if ENOSPC is raised during 'gem install' https://github.com/rubygems/rubygems/commit/8e0e20f079 --- lib/rubygems.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib/rubygems.rb') diff --git a/lib/rubygems.rb b/lib/rubygems.rb index a869fc4c45..0c0ca9c1ba 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -774,6 +774,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]} open_file(path, "wb") do |io| io.write data end + rescue Errno::ENOSPC + # If we ran out of space but the file exists, it's *guaranteed* to be corrupted. + File.delete(path) if File.exist?(path) + raise end ## -- cgit v1.2.3