Skip to content

[pull] master from shadowsocks:master#132

Merged
pull[bot] merged 4 commits into
Kiterepo:masterfrom
shadowsocks:master
Feb 9, 2026
Merged

[pull] master from shadowsocks:master#132
pull[bot] merged 4 commits into
Kiterepo:masterfrom
shadowsocks:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Feb 9, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

madeye and others added 4 commits February 9, 2026 08:53
Add bswap_data() to swap buffer pointers instead of copying, replace
brealloc+memcpy with pointer swaps in aead and stream codecs, add
in-place fast paths for non-Salsa20 stream ciphers, and use index
tracking instead of memmove in aead_decrypt chunked reassembly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The idx-tracking optimization in aead_decrypt skipped memmove when
partial AEAD chunks spanned multiple calls, but never compacted the
dead space before idx. This caused the chunk buffer to grow
proportionally to total data transferred (~10 MB growth per 10 MB
transferred), tripping the stress test memory leak threshold.

Compact residual data to the front when appending new ciphertext,
keeping the buffer bounded to the size of the residual plus new data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…action

Fix unbounded buffer growth in aead_decrypt chunk reassembly
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Feb 9, 2026
@pull pull Bot added the ⤵️ pull label Feb 9, 2026
@pull pull Bot merged commit c5e8788 into Kiterepo:master Feb 9, 2026
2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant