Skip to content

fix(encoder): allow encoding zero-length deletion files with HeaderFlagNoChecksum - #104

Open
Aditya-9-6 wants to merge 1 commit into
superfly:mainfrom
Aditya-9-6:fix/encoder-commit-zero-nochecksum
Open

Aditya-9-6 wants to merge 1 commit into
superfly:mainfrom
Aditya-9-6:fix/encoder-commit-zero-nochecksum

Conversation

@Aditya-9-6

Copy link
Copy Markdown

Summary

Fixes #103

Fixes a contradiction in Encoder.Close() that made it impossible to encode zero-length (deletion) LTX files when HeaderFlagNoChecksum was set.

Details

  1. encoder.go:194 unconditionally required enc.trailer.PostApplyChecksum == ChecksumFlag whenever Commit == 0.
  2. However, for files with HeaderFlagNoChecksum, Trailer.Validate() enforces that PostApplyChecksum == 0 (post-apply checksum not allowed if non-zero).
  3. This PR updates encoder.go:194 to only require ChecksumFlag when checksums are enabled (!enc.header.NoChecksum()). When HeaderFlagNoChecksum is set, Trailer.Validate() already verifies that PostApplyChecksum == 0.
  4. Adds unit tests in encoder_test.go verifying both valid zero-commit NoChecksum encoding/decoding and rejection of invalid non-zero checksums under NoChecksum.

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.

bug(encoder): cannot encode zero-length deletion LTX files with HeaderFlagNoChecksum

1 participant