ODFileSystem v0.2
Release notes
Highlights
Audio CDs now mount with distinct volume names derived from CDDB disc IDs, ancestry/identity handling in the core has been consolidated, and a Coverity-flagged buffer overrun in the Amiga CDDA mount path is fixed. A stack corruption issue was fixed that would make ODFileSystem crash with CDs with more than about four levels of directories.
Features
- cdda/amiga: keep CDDA disc IDs in pure-audio volume names (1639317). Pure-audio discs now expose the CDDB disc id through the volume label so multiple audio CDs no longer all mount as "Audio CD". Mixed-mode discs continue to surface as the synthetic
CDDAbackend name. The pure-audio label is cached incdda_context_t, carried through the backend, copied into the handler mount state, and used verbatim to build the DOS volume node name.
Improvements
- odfs: centralize node identity comparison and simplify ancestry lookup (14db72f). Introduces
odfs_node_matches_identity()inodfs/node.h, replacing repetitive field-by-field comparisons across mount and ancestry logic. Thegrandparent_outparameter ofodfs_resolve_parent_node()is now optional, lowering stack usage for parent resolution in the Amiga handler.
Bug fixes
- amiga: bound CDDA volume name copy (74804fb). The pure-audio handler previously copied the CDDA volume name using destination buffer sizes, but the source
cdda_context_tfield is only 32 bytes. The copy is now bounded tosizeof(ctx->volume_name), fixing the Coverity overrun warning incopy_pure_audio_volume_name().
Tests
- Host-side CDDA naming coverage added (
tests/unit/test_cdda.c). - Amiga handler test extended to verify
NameFromLock(),Info(), andExamine()volume names (tests/amiga/test_handler.c). - New unit coverage for parent resolution with a
NULLgrandparent output (tests/unit/test_ancestry.c).
Full Changelog: v0.1...v0.2