node-unzip icon indicating copy to clipboard operation
node-unzip copied to clipboard

Zipfile signature not read

Open Swaagie opened this issue 11 years ago • 12 comments

Referencing this issue https://github.com/joyent/node/issues/6384 here as it started out with me trying to use unzip with a github repo release zipfile

Summary: any release zipfile from a github repositiory will not work correctly by just piping the stream to unzip, e.g. as per example. fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' })); As tjfontaine demonstrated in the response to issue the signature has to be read from the stream first before piping stuff to unzip.

More background on the signature: https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html

Swaagie avatar Oct 22 '13 21:10 Swaagie

Actually there is a slight difference this result in an: Error: invalid block type if read through unzip. The signature itself seems to be read correctly.

Swaagie avatar Oct 23 '13 15:10 Swaagie

I just ran into this on a few large zip files I was parsing with node-excel. It appears the signature is being read, however - any ideas on this? I haven't been able to get it to work simply by skipping the signature.

ssafejava avatar Nov 28 '13 06:11 ssafejava

Ran into this same issue today with Unzip. Trace:

uncaughtException: invalid stored block lengths date=Fri Feb 07 2014 13:20:50 GMT-0600 (CST), pid=91702, uid=501, gid=20, cwd=<path>, execPath=/opt/local/bin/node, version=v0.10.21, argv=[node, <path>], rss=55934976, heapTotal=31139328, heapUsed=14503144, loadavg=[1.56640625, 1.62646484375, 1.3916015625], uptime=8404034, trace=[column=17, file=zlib.js, function=Zlib._binding.onerror, line=295, method=_binding.onerror, native=false], stack=[Error: invalid stored block lengths,     at Zlib._binding.onerror (zlib.js:295:17)]

connor4312 avatar Feb 07 '14 19:02 connor4312

Anyone learn any more about this issue? I just tried to to use node-unzip on this zip file and it's not a signature problem (parse.js confirmed that the file's signature was 0x04034b50), but it still blows up with "invalid stored block lengths".

jeffpar avatar Apr 05 '14 22:04 jeffpar

It sounds like the "block lengths" and "block types" errors might be separate issues.

I'm working with a 3.5 MB zip file. When I use the Mac OSX compression tool to create the zip (right click on a folder and click Compress), then run it through node-unzip, I get "invalid stored block lengths". When I compress the same directory using the zip command line utility, then node-unzip extracts it just fine.

Maybe the storage format has some variations that we're not accounting for. I did a hex diff of the two files. I don't know if it's helpful to a keener eye than mine:

hex-diff.png

bitmage avatar May 20 '14 07:05 bitmage

I am getting the same issue with [email protected] & [email protected]

Says

Error: invalid signature: 0x80014

while extracting an .ipa file generated from Xcode 6.1. This was working fine for iOS 7 IPAs but started breaking for iOS 8 IPAs

detj avatar Nov 18 '14 14:11 detj

+1 on this; also encountering this issue (Error: invalid signature: 0x80014) when unzipping this book.

jacksonrayhamilton avatar Aug 06 '15 03:08 jacksonrayhamilton

Anyone has any hints what this error means?

detj avatar Sep 09 '15 16:09 detj

The problem is in parse.js. If you uncomment setImmediate in 161 than it works on my machine. And it seems logical. There is no need to wait for I/O events to finish. Actually that additional I/O events are executed is causing the problem.

// setImmediate(function() { self._pullStream.unpipe(); self._pullStream.prepend(extra); self._processDataDescriptor(entry); // });

I'm using the latest version.

jdonnerstag avatar Nov 17 '15 12:11 jdonnerstag

Just had the same issue. Thanks for the fix @jdonnerstag. Unfortunately I do not see a PR for this change. :(

andrewfaria avatar Nov 17 '15 22:11 andrewfaria

+1

jkuri avatar Nov 20 '15 23:11 jkuri

I had the same issue. Switching to node-unzip-2 fixed it for me.

seppevs avatar Nov 23 '15 10:11 seppevs