Repository navigation
Conversation
The reader handled store and deflate only and misread real ALZip archives in two places: # the filename field's size counts the name only; the code page and parent-path id ALZip puts in front of it are not counted, so names were cut short; # a comment record between a file header and its blocks (and at the top level) stopped the parse. * the writer no longer emits a zero-size block for an empty file; ALZip writes none and EggDotNet cannot read that entry otherwise. Rung 1: EggDotNet (akolman/EggDotNet master, MIT) converted for AZO (Compression.Core/Dictionary/Azo) and the EGG encryption headers (WinZip-style AES, LEA in CTR mode); notices sit beside the code. Nothing permissive above it covers AZO or LEA. Verified against EggDotNet's ALZip-written corpus (15 archives, each block CRC-32 checked) and the other way: EggDotNet reads our writer's ours.egg with valid CRCs (eggdotnet-listing.txt); the writer output is pinned byte for byte. Split archives stay refused.
Retain EGG and main reference archives together, record the EggDotNet AZO and ZIP/AES/LEA conversion notices, keep main artwork and regenerate Core and Archives API documentation. Verified: Release solution build, 89 focused format/codec/documentation/provenance tests passed, documentation generation completed without errors.
Current-main fixtures, provenance additions and public API counts overlap the EGG branch. Preserve both sets and regenerate the Core summary. Verified solution build, 70 focused tests and Core and Archive documentation generation.
Adding a second named payload to Intel HEX could silently discard a file because the shared image builder kept only the first payload in filesystem enumeration order. Reject multiple non-metadata payloads, including an empty first payload, before any output is written. Tests verify creation refusal and byte-preserving add refusal. Verified all three regressions fail before the fix and pass after it, 93 focused tests, 34280 required tests with 1582 skips and no failures, and three package documentation checks.
Bring the firmware payload validation fix onto current main after partitioned-disk support merged. Verified solution build, 299 focused tests and all three package documentation checks; the preceding required suite passed 34280 tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
EGG reader now decodes bzip2, AZO and LZMA, solid archives and ZIP 2.0 / AES / LEA encryption, and parses real ALZip filename fields and comment records correctly. The writer no longer emits a zero-size block for empty files.
Rung 1: AZO and the encryption headers converted from EggDotNet (MIT), notices beside the code.
Verification:
EggReferenceTests).ours.eggwith valid CRCs (Egg/ReferenceVectors/eggdotnet-listing.txt); writer output pinned byte for byte.FullyQualifiedName~Egg(58) and CatalogueConsistency green locally.Split (multi-volume) archives remain refused.
Integration update: depends on #537 for shared Intel HEX payload validation exposed by the required Linux suite. The dependency is integrated for CI and must land first; after it merges, the remaining diff is this PR's format change. The refreshed solution build and focused format, firmware, README and architecture checks pass.