[erlang-questions] [bug] zip archives in memory (patch incl.)

Martin Dvořák <>
Wed Apr 2 13:27:21 CEST 2008


Hi,

I've found two bugs regarding handling zip archives in memory. The 
attached patch solves both of them, it has been tested with R11B5 and 
should work with R12B1 as well.

1. When decompressing from memory (ie. the archive given as a binary to 
extract/2), the decompression crashes when the archive contains a directory.

This is because get_z_file/7 returns In accumulator (when it encounters 
a directory), which is a tuple in case of binary_io/2, but the calling 
get_z_files/5 function undestands the tuple as a return value and a new 
accumulator.

2. When decompressing to memory (ie. with the 'memory' option passed to 
extract/2), the directories found in the archive are created on the real 
disk filesystem.

This is because filelib:ensure_dir/1 is called in get_z_file/7 no matter 
which function (file_io/2 or binary_io/2) has been selected for output.


/Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zip.patch
Type: text/x-diff
Size: 1884 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080402/b4b26e9d/attachment.bin>


More information about the erlang-questions mailing list