皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

苹果 HFS/HFS+文件系统驱动程序在 Linux 6.18 中迎来更多修复

除了 IEEE-1394 Firewire 支持仍在 Linux 内核中维护外,还有另一项苹果技术仍在 Linux 内核中看到代码更新,那就是 HFS 和 HFS+文件系统。对于 Linux 6.18 内核,HFS/HFS+支持方面有更多修复。

今年早些时候,有关可能从 Linux 中移除 HFS/HFS+驱动程序以解决其未维护问题的讨论。但对该问题的关注最终导致新的维护者站出来帮助维护这个老化的文件系统驱动程序代码。从那时起,hfs 和 hfsplus 驱动程序的修复已经出现,现在为 Linux 6.18 带来了更多修复。

苹果 HFS/HFS+文件系统驱动程序在 Linux 6.18 中迎来更多修复

这次将合并到 Linux 6.18 Git 上周一提供了对这些旧苹果文件系统驱动程序的最新修复:

“这包括 syzbot 报告的多个问题的修复,xfstests 失败的 HFS/HFS+ 修复,以及 HFS/HFS+ 调试输出子系统的重构。

– Kang Chen 修复了在从 hfsplus_listxattr() 调用 hfsplus_uni2asc() 时,hfsplus_uni2asc() 中的 slab 越界问题。

– Yang Chenzhi 修复了当记录偏移量或长度大于节点大小时,hfsplus_bmap_alloc() 发生崩溃的问题。

– 李扬涛修正了 hfsplus_fill_super()中的错误代码,如果目录类型包含损坏的记录,则修正目录的隐藏文件。

– KMSAN 未初始化值修复:hfs_find_set_zero_bits()和__hfsplus_ext_cache_extent()使用 kzalloc()代替 kmalloc(),并在 hfsplus_delete_cat()中通过在 hfsplus_iget()逻辑中正确初始化 struct hfsplus_inode_info。

– 如果 struct hfsplus_unistr 的长度字段大于 HFSPLUS_MAX_STRLEN,hfsplus_strcasecmp()可能会发生 slab 越界问题。通过检查比较字符串的长度,如果字符串长度大于 HFSPLUS_MAX_STRLEN,则将长度更正为该值。

– 由于测试运行后 HFS 卷损坏,通用/736 xfstest 对 HFS 失败。

主要原因是删除目录文件中的记录后,缺少纠正 mdb->drNxtCNID/HFS_SB(sb)->next_id(下一个未使用的 CNID)的逻辑。这个问题通过在 hfs_correct_next_unused_CNID()中实现必要的逻辑得到了修复。”

转自 https://www.phoronix.com/news/Apple-HFS-Linux-6.18