Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BAD_PASSWORD #121

Open
wants to merge 270 commits into
base: master
Choose a base branch
from
Open

BAD_PASSWORD #121

wants to merge 270 commits into from

Conversation

Dowhanych
Copy link

@Dowhanych Dowhanych commented Oct 24, 2018

No description provided.

ZJONSSON and others added 30 commits November 22, 2016 11:07
Add `.promise()` syntax sugar
When the main stream finishes we register `finish` and emit a `chunk` to ensure any outstanding pipes gets closed out.  Also prevent new pipes from a closed stream.
Emit error if parseOne fails to find a matching file
(allow last pull to run before `finish === true`) (reverted from commit 8d04171)
Which can contain overrides for compressedSize and uncompressedSize
See this helpful commit for more detail: cthackers/adm-zip@5e4e4f8
If this option is set to true then parsing and extraction will stop as soon as we hit the first central directory header.  At this point we have extracted all the data.   Reason: Avoids potential invalid signature issue.
If we don't recognize the signature but we are already at the end, then look for the EndCentralDirectoryRecord
Add: Open.file and Open.url
Simplify callback and ensure backpressure is managed
Fixing uncaught stream event error in case of multiples piped stream
Callback should be called when buffer is zero length OR has the length of the eof (if buffer)
Hotfix: callback when eof is buffer
mheggeseth and others added 30 commits September 9, 2021 14:37
Ensure Successful ZIP64 Extraction
…f available

Fixes tests for NodeJS v15 and higher
Related to #269,#273
End stream before closing & Prefer req.destroy() before req.abort() if available
fix grammatical error
Co-authored-by: Ziggy Jonsson <ziggy.jonsson.nyc@gmail.com>
* Removing binary dependency

* Adding unit test for parseBuffer

---------

Co-authored-by: amcgoogan <amcgoogan@gmail.com>
* Break the huge promise chain, use a loop

By using a loop over all records instead of building a huge promise chain, we avoid the issue documented in #254 where the promise chain ends up taking up all the memory of an application.

In short, this commit allows the garbage collector to collect the small promises as they resolve, rather than building one huge chain that keeps references to the future "then"s.

The downside of this approach currently is that it relies on async/await syntax in order to allow awaits inside loops, which is what can fix the issue here. Im sure we can find a solution without this if it is significant, and we put our minds to it!

* Async-free solution with no eternal promise chain

In this approach, I have removed the dependency on async/await syntax, but also avoided eternal promise chains by using a top-level promise that allows sub-promises to compute to fulfillment before moving on.
…179)

* Fix: Unix OS's should properly ignore the windows zip slipped files as well.

* Tests: resurrected the original zip-slip test as is as requested
Co-authored-by: Ziggy Jonsson <ziggy.jonsson.nyc@gmail.com>
* Open methods - only stream up to length

* bump version
* eslint

* only run on 18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet