Earlier this year there was talk of Linux potentially dropping its Apple HFS and HFS+ file-system drivers as they had been orphaned for a decade and proving to be a maintenance burden. Following that some developers stepped up to better maintain the code for HFS and HFS+ file-system support. In Linux 6.17 we are seeing some of the fruits of that work.
A handful of open-source developers have submitted HFS/HFS+ improvements/fixes that are now part of the Linux 6.17 kernel.
Viacheslav Dubeyko explained in the pull request of the HFS/HFS+ code changes for this merge window:
Currently, we have around 221 opened issues in HFS/HFS+ file system drivers. Mostly, xfstests reveal majority of the issues and multiple tests leave HFS/HFS+ volume in corrupted state.
Johannes Thumshirn has made nice cleanup in hfsplus_submit_bio(). Tetsuo Handa has fixed the syzbot reported issue in hfsplus_create_attributes_file() for the case of corruption the Attributes File’s metadata. Yangtao Li has fixed the syzbot reported issue by removing the uneccessary WARN_ON() in hfsplus_free_extents().
The rest patches contains fixes:
(1) restoring generic/001 successful execution by erasing deleted b-tree nodes;
(2) eliminating slab-out-of-bounds issue in hfs_bnode_read() and hfsplus_bnode_read() by checking correctness of offset and length by operation of accessing b-tree node’s content;
(3) eliminating slab-out-of-bounds read in hfsplus_uni2asc() for the case if b-tree node’s record has corrupted length of a name that could be bigger than HFSPLUS_MAX_STRLEN;
(4) eliminating general protection fault in hfs_find_init() for the case of initial b-tree object creation.
So for those that were concerned about the prospects of losing Apple HFS/HFS+ support under Linux, there is some renewed lift in it with the Linux 6.17 kernel. Also for Linux 6.17 for longtime Apple users are IEEE-1394 FireWire improvements.