Here, you can use absolutely any ZIP file for `test.zip`: ``` require 'zip' buf = nil File.open('test.zip', "rb") { |f| buf = f.read } File.open("before.zip", "wb") { |f| f << buf } Zip::File.open_buffer(buf) { |zf| nil # Do nothing at all!!! } File.open("after.zip", "wb") { |f| f << buf } ``` Note that `after.zip` differs from `before.zip`, despite the fact that there's absolutely no reason to be changed. However, if you do: ``` File.open('test.zip', "rb") { |f| buf = f.read } Zip::File.open_buffer(buf.freeze) { |zf| zf.entries.first } File.open("after.zip", "wb") { |f| f << buf } ``` then everything works perfectly, `buf` is not damaged and nothing crashes.