Skip to content

lamfold 0.1.3 and lamfold-erofs 0.1.2

Choose a tag to compare

@glamberson glamberson released this 15 Oct 14:18
· 5 commits to main since this release

This release fixes lamfold-erofs reads that returned wrong bytes with no error, and moves the lamfold substrate to ruzstd 0.9.1.

lamfold-erofs 0.1.2

Fixed

  • LZ4 files read back wrong. On every default lz4 image a pcluster's stream starts at its first non-zero byte, and 0.1.1 tried offset 0 first, which also decodes "successfully" when there is one padding byte. Real executables hit it: /bin/bash came back with 1,740 wrong bytes. The stream now starts where the kernel starts it.
  • Files with inline xattrs read wrong. When a file's 52- or 56-byte xattr area (an SELinux label, for example) puts its compact index on a 32-byte boundary, every big pcluster was placed one block too far: Wrong bytes or a decode error with zstd, lzma and deflate.
  • Fragments and compressed directories. Images made with -Efragments or -Eall-fragments (Fedora's live images, lorax) read wrong with no error, and --zD directories read as empty. They are now refused at open with Unsupported until the packed inode is implemented.
  • Custom LZMA properties (erofs-utils 1.9) now come from each stream, and blocks smaller than 4 KiB now read.

Changed

  • open refuses what can't be read anywhere in the image: Unknown incompat features, the 48-bit layout, metabox and extra devices.

lamfold 0.1.3

  • ruzstd 0.9.1, the first release with the fix for RUSTSEC-2026-0344, in place of the exact 0.8.3 pin.

Testing

Each new fixture (crates/lamfold-erofs/tests/fixtures/regenerate.sh) fails on 0.1.1. Images from erofs-utils 1.8.6 and 1.9.4 over 24 option sets, a tree of real executables, an xattr tree and 512 to 2048-byte blocks read every file correctly or are refused.

Changelogs: lamfold-erofs, lamfold.

lamfold is LamBoot's read-only media stack (LamBoot), from Lamco Development LLC.