Adam Hathcock
6b9a3f8b69
Update src/SharpCompress/Compressors/PPMd/PpmdStream.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:10:17 +01:00
Adam Hathcock
db9bdb20bd
Update src/SharpCompress/IO/PooledMemoryStream.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:09:58 +01:00
Adam Hathcock
2bf007542a
cleaned up PooledMemoryStream.cs
2026-04-04 11:10:43 +01:00
Adam Hathcock
a26198a6b0
use pooled memory streams for better performance
2026-04-04 11:04:51 +01:00
Adam Hathcock
9db27dfc2b
fix build
2026-04-04 10:53:12 +01:00
Adam Hathcock
b326b719bc
Merge branch 'release' into adam/master-release
...
# Conflicts:
# src/SharpCompress/packages.lock.json
2026-04-04 10:50:12 +01:00
Adam Hathcock
817bd2a95e
First pass of implementation
2026-04-04 10:44:23 +01:00
Adam Hathcock
5758b08236
Merge pull request #1272 from adamhathcock/copilot/fix-decompression-bomb-and-crash-bugs
...
Fix fuzzer-found decompression bomb and crash bugs
0.47.4
2026-04-03 13:05:55 +01:00
Adam Hathcock
d532204f6b
Merge pull request #1273 from adamhathcock/copilot/dynamic-default-ringbuffer-bzip2
...
Dynamic ring buffer sizing for BZip2 and ZStandard on non-seekable streams
2026-04-03 12:51:35 +01:00
copilot-swe-agent[bot]
01fee28759
ShrinkStream: add uncompressedSize bounds check, remove unused CreateAsync params
...
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/9ed10d73-ebf8-45d3-8d25-d5aa1f4989e7
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-03 11:49:45 +00:00
Adam Hathcock
bd0d1cfba8
remove more extra stuff
2026-04-03 12:47:04 +01:00
copilot-swe-agent[bot]
9ce6ec8d6f
Dynamic ring buffer sizing for BZip2 and ZStandard on non-seekable streams
...
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/b115976a-5d8a-412e-a462-72b4531f2d0a
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-02 11:01:08 +00:00
copilot-swe-agent[bot]
669fbed62b
Dynamic ring buffer sizing for BZip2 and ZStandard on non-seekable streams
...
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/b115976a-5d8a-412e-a462-72b4531f2d0a
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-02 10:56:50 +00:00
copilot-swe-agent[bot]
c4c646c4dd
Initial plan
2026-04-02 10:48:59 +00:00
Adam Hathcock
16903bdecb
clean up shrink stream to ensure correctness
2026-04-02 11:48:01 +01:00
copilot-swe-agent[bot]
58bec11b2c
Fix decompression bomb and crash bugs (fuzzer-found)
...
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/84b02876-db79-41ed-875b-f1c7dbe5d8e2
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-02 09:49:27 +00:00
copilot-swe-agent[bot]
24e812ce76
Initial plan
2026-04-02 09:33:07 +00:00
Adam Hathcock
ea6946c48d
Merge pull request #1266 from coderb/master
...
Fix three BLAKE2sp correctness bugs and eliminate allocations in hot path
2026-03-28 10:03:58 +00:00
Adam Hathcock
512f101d26
Merge remote-tracking branch 'origin/master' into coderb/master
2026-03-28 09:57:33 +00:00
Adam Hathcock
fefeed0601
Merge pull request #1267 from adamhathcock/release
...
Release to master
2026-03-28 09:53:45 +00:00
root
265d99095b
Fix three BLAKE2sp correctness bugs and eliminate allocations in hot path
...
1. Fix off-by-one in Update(BLAKE2SP): pos was masked with 448 (64×7)
instead of 511 (64×8−1), causing incorrect leaf assignment when update
chunks are not multiples of 64 bytes. This produced wrong hashes
whenever streaming reads didn't align to 64-byte boundaries.
2. Fix double-finalization when Read() is called again after returning 0.
Final() was called unconditionally on each EOF read, re-running
compression on an already-finalized state and corrupting the hash.
EnsureHash() guards with a null-check and is idempotent; both sync
and async Read paths share the fix. _blake2sp is set to null after
finalization so any erroneous post-final calls fail fast rather than
silently corrupting state.
3. Fix false-positive CRC check when stream is not fully drained.
_hash was initialized to fileHeader.FileCrc in the constructor, so
GetCrc() returned the expected CRC rather than the computed one if
the stream was abandoned early. The check would then compare the
expected hash against itself and always succeed, silently accepting
a corrupt or incomplete file. _hash is now null until the stream is
fully read; GetCrc() throws if called early rather than returning a
misleading value.
Additional changes:
- Compress: stackalloc m/v arrays instead of heap; LE fast path via
MemoryMarshal.Cast replaces 16 BitConverter.ToUInt32 calls per block
- Final(BLAKE2S): write directly to Span<byte>, eliminating MemoryStream
and BitConverter.GetBytes allocations; 8 leaf digests now stackalloc'd
- Inner classes and fields: private, sealed, readonly where applicable
2026-03-27 13:34:00 -04:00
Adam Hathcock
7178a9e599
Merge pull request #1260 from adamhathcock/copilot/fix-multiple-decompressor-crash
...
Fix denial-of-service crashes in 8 decompressors on malformed input
0.47.3
2026-03-23 12:15:32 +00:00
Adam Hathcock
a3a7098ed2
Fix MalformedInputTests.cs so that it's not running in legacy
2026-03-23 11:54:17 +00:00
copilot-swe-agent[bot]
243bf00308
Address code review: fix HbCreateDecodeTables off-by-one, rename test helper
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/3037a2f7-f243-4261-802f-e8c83b4d6722
2026-03-23 10:03:14 +00:00
copilot-swe-agent[bot]
f038652d3b
Fix multiple decompressor crashes on malformed input (IOOB, DivByZero, NullRef)
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/3037a2f7-f243-4261-802f-e8c83b4d6722
2026-03-23 09:55:55 +00:00
copilot-swe-agent[bot]
f608957c7a
Initial plan: fix multiple decompressor crashes on malformed input
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/3037a2f7-f243-4261-802f-e8c83b4d6722
2026-03-23 09:37:58 +00:00
copilot-swe-agent[bot]
4540c58e98
Initial plan
2026-03-23 09:23:19 +00:00
Adam Hathcock
d7f9d25b74
Merge pull request #1257 from adamhathcock/copilot/fix-rewind-buffer-size-zstandard
0.47.2
2026-03-17 18:38:56 +00:00
copilot-swe-agent[bot]
d56b676ee9
fix: increase RewindableBufferSize to 160KB to cover ZStandard worst-case first block
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-03-17 12:25:29 +00:00
Adam Hathcock
1bfc11adfa
Merge pull request #1253 from adamhathcock/adam/fix-zip645-and-zipzstd
...
Fix ZIP64 stream bounding and WinZip AES read-state corruption in ZIP reader
0.47.1
2026-03-17 12:21:57 +00:00
copilot-swe-agent[bot]
4d6478454d
Initial plan
2026-03-17 12:19:54 +00:00
Adam Hathcock
9611c4c3de
try ignoring the warning that only seems to happen on GA
2026-03-17 12:12:44 +00:00
Daniel Sabel
642371f87e
fixes .net 4.8 build for WinzipAesCryptoStream tests
2026-03-16 08:04:06 +01:00
Adam Hathcock
63e83dff5d
Update tests/SharpCompress.Test/Zip/ZipFilePartTests.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-11 11:53:10 +00:00
Daniel Sabel
5fc0d691cf
fixes xor range on async WinzipAesCryptoStream path
2026-03-11 08:57:47 +01:00
Adam Hathcock
b54c42028c
Merge pull request #1243 from adamhathcock/adam/api-clean-up
...
Some API clean up from GPT 5.4
2026-03-10 16:45:29 +00:00
Daniel Sabel
03aef9e4c1
update test to reflect smaller test zip
2026-03-09 14:04:17 +01:00
Daniel Sabel
51859f9a2b
fixes decompression of large mixed encrypted zip files
2026-03-09 14:02:31 +01:00
Adam Hathcock
b05a16d007
oops, wrong change made
2026-03-06 15:39:07 +00:00
Adam Hathcock
e6a179bdb5
fmt
2026-03-06 15:33:57 +00:00
Adam Hathcock
f13ab3a0e7
FindFactoryAsync shouldn't be public
2026-03-06 15:33:30 +00:00
Adam Hathcock
ebd784cfb2
code review changes
2026-03-06 15:16:28 +00:00
Adam Hathcock
15d6d3c641
Merge remote-tracking branch 'origin/master' into adam/api-clean-up
2026-03-06 15:12:56 +00:00
Adam Hathcock
542f71f0de
Merge pull request #1244 from adamhathcock/copilot/sub-pr-1243
...
Rename IWriteableArchiveFactory.cs to IWritableArchiveFactory.cs
2026-03-06 15:07:36 +00:00
Adam Hathcock
c6e2221b24
Merge pull request #1245 from adamhathcock/adam/clean-up-tests
...
Proper test file clean up
2026-03-06 15:07:08 +00:00
Adam Hathcock
04d1a10114
don't use static scratch directory for tests. Throw exception when test can't clean up
2026-03-06 14:58:04 +00:00
copilot-swe-agent[bot]
b0e9736005
Rename IWriteableArchiveFactory.cs to IWritableArchiveFactory.cs to match interface name
...
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-03-06 14:52:06 +00:00
copilot-swe-agent[bot]
bf32c85933
Initial plan
2026-03-06 14:48:55 +00:00
Adam Hathcock
9050a7a64a
remove extra creates
2026-03-06 11:43:44 +00:00
Adam Hathcock
f34ed8bd94
first commit for conslidating publci api
2026-03-06 11:22:09 +00:00