Closed
Description
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.
Metadata
Metadata
Assignees
Labels
No labels