Adam Hathcock
891d1268fb
Update src/SharpCompress/IO/PooledMemoryStream.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-19 12:18:47 +01:00
Adam Hathcock
ad3c5dafd7
update tests
2026-04-19 12:11:50 +01:00
Adam Hathcock
b36689af20
format
2026-04-19 11:48:54 +01:00
Adam Hathcock
e29670e55f
Merge branch 'master' into adam/pooledmemorystream
2026-04-19 11:43:24 +01:00
Adam Hathcock
14b0fd012c
Merge pull request #1274 from adamhathcock/adam/master-release
...
Release to Master
2026-04-19 11:32:16 +01:00
Adam Hathcock
51acd43b16
Merge branch 'release' into adam/master-release
2026-04-19 11:25:39 +01:00
Adam Hathcock
bf075d291b
Merge pull request #1286 from puk06/docs/appnote-reference-link
...
Replace APPNOTE.TXT contents with reference link note
2026-04-15 15:59:29 +01:00
Puk06
f77f372d9f
Add specification link label to APPNOTE reference
2026-04-15 07:48:26 +09:00
Puk06
23e72452e3
Replace APPNOTE.TXT contents with reference link note
2026-04-15 07:45:36 +09:00
Copilot
20932b81b5
Fix SevenZipArchive.IsSolidAsync() always returning false ( #1284 )
...
* Initial plan
* Fix IsSolidAsync() returning false for 7z solid archives
SevenZipArchive was missing an override for IsSolidAsync(), so the
base class default (always returning false) was used. Added an override
that uses the same logic as the sync IsSolid property: load entries
asynchronously and check if any folder has more than one file.
Also updated existing async tests to use IsSolidAsync() instead of
casting to SevenZipArchive to call the sync IsSolid, and added a new
SevenZipArchive_TestSolidDetectionAsync test that mirrors the existing
sync SevenZipArchive_TestSolidDetection test.
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/60f8daec-e784-4845-a65c-5a493fbb53ef
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-13 16:59:23 +01:00
Copilot
da30b5c805
Fix incorrect code examples in docs for sync/async usage ( #1280 )
2026-04-10 17:47:33 +01:00
Adam Hathcock
b2b036a2be
Merge pull request #1279 from aromaa/fix/access-time-exception
2026-04-10 17:38:48 +01:00
Dirk Lemstra
ef67c0c3bd
Corrected async examples. ( #1277 )
2026-04-10 17:34:51 +01:00
aromaa
4d774c6a7a
Fix setting invalid access time fails extraction
2026-04-10 15:56:48 +03:00
Adam Hathcock
2487d8995c
Merge remote-tracking branch 'origin/adam/pooledmemorystream' into adam/pooledmemorystream
...
# Conflicts:
# src/SharpCompress/IO/PooledMemoryStream.cs
2026-04-05 15:26:18 +01:00
Adam Hathcock
d1e6173b50
remove contiguous buffer tracking and added overrenting array pool test
2026-04-05 15:25:33 +01:00
Adam Hathcock
e7cacdd7ee
don't resize ring buffer
2026-04-05 15:19:44 +01:00
Adam Hathcock
fb78598516
implement GetBuffer with non-pooled array creation
2026-04-05 15:16:00 +01:00
Adam Hathcock
ec46584e54
Update src/SharpCompress/IO/PooledMemoryStream.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:57:36 +01:00
Adam Hathcock
4f09c6dc00
Update tests/SharpCompress.Test/Streams/PooledMemoryStreamTests.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:57:04 +01:00
Adam Hathcock
bfe78249fc
remove net5 from target frameworks to avoid issues
2026-04-05 14:47:41 +01:00
Adam Hathcock
c25fec313e
fix PooledMemoryStream.cs
2026-04-05 14:39:15 +01:00
copilot-swe-agent[bot]
8c4fed373b
Remove try/catch from async overloads and fix CA1725 parameter naming in PooledMemoryStream
...
Agent-Logs-Url: https://github.com/adamhathcock/sharpcompress/sessions/1f2c3c48-1112-43f1-82ce-efb157fbe0d5
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com >
2026-04-05 13:21:54 +00:00
Adam Hathcock
c01dd5cd90
Update tests/SharpCompress.Test/Streams/PooledMemoryStreamTests.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:16:47 +01:00
Adam Hathcock
5e7644bd18
Update src/SharpCompress/IO/PooledMemoryStream.cs
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-05 14:11:48 +01:00
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