Skip to content

Don't read or write anything once length is zero#9415

Merged
headius merged 2 commits into
jruby:jruby-9.4from
headius:zero_length_copy_stream_non_io
May 5, 2026
Merged

Don't read or write anything once length is zero#9415
headius merged 2 commits into
jruby:jruby-9.4from
headius:zero_length_copy_stream_non_io

Conversation

@headius

@headius headius commented May 5, 2026

Copy link
Copy Markdown
Member

Fixes #9377.

headius added 2 commits May 5, 2026 16:46
A zero-length copy_stream fell through the cracks along the non-IO
path, failing to detect that nothing should be transferred and
proceeding to copy the maximum chunk size repeatedly. This caused
jruby#9377 and resulted in zero-length files from gems being
written with the entire contents of the remaining tar stream.

The fix here detects a zero length on the way into each form of
transfer and bails out before any work is done.

Fixes jruby#9377.
@headius
headius force-pushed the zero_length_copy_stream_non_io branch from 8957684 to bb1f49f Compare May 5, 2026 21:48
@headius
headius merged commit 696f54b into jruby:jruby-9.4 May 5, 2026
96 of 98 checks passed
@headius
headius deleted the zero_length_copy_stream_non_io branch May 5, 2026 22:09
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.

1 participant