从这个网页截图中,可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在mount-time recovery(挂载时恢复)的错误注入测试中,KASAN(Kernel Address Space Layout Randomization)发现了一个use-after-free(使用后释放)漏洞。 - 原因:在数据恢复过程中,如果使用了部分日志(由dsync写入),但在恢复开始之前发生错误,导致日志写入器未能创建恢复检查点。恢复过程中,被恢复的inode(索引节点)的数据被留在了ns_dirty_files列表中,但inode本身未被释放。 2. 修复措施: - 修复方法:通过清理在恢复过程中中途失败的inode,如果恢复过程在inode读取恢复数据之前失败。 - 代码变更:在nilfs2/recovery.c文件中,添加了nilfs_abort_roll_forward函数,用于清理在恢复过程中中途失败的inode。 3. 补丁链接: - 链接:https://lkml.kernel.org/r/20240810065242.3701-1-konishi.ryusuke@gmail.com 4. 修复细节: - 代码变更: - 添加了对inode的清理逻辑。 - 修改了nilfs_salvage_orphan_logs函数,以处理在最新检查点后写入的日志。 5. 补丁状态: - 状态:已提交到上游(upstream)。 - 补丁编号:5787fcaab9eb5930f5378d6a1dd03d916d146622。 这些信息详细描述了漏洞的背景、修复措施和代码变更,有助于理解漏洞的性质和修复过程。