从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 一个客户报告了一个crash和ocfs2文件系统的损坏。 - 系统崩溃是由于检测到损坏引起的。 - 通过调试,发现fsck -fn输出显示了以下损坏: 2. 问题原因: - 在reflink工作流程中,为inline xattr保留空间时出现问题。 - 问题函数是ocfs2_reflink_xattr_inline()。 - 该函数在reflink树已经重建到目标inode时调用,但没有检查目标inode是否在根元数据块中。 - 函数简单地将l_count从243减到227,从而为inline xattr分配了256字节的空间,而inode已经扩展到超过这个索引(在这种情况下高达230),导致损坏。 3. 修复措施: - 修复措施是在reflink树重建之前为目标inode保留空间。 - 客户已经验证了修复。 4. 补丁内容: - 代码补丁包括对ocfs2_reflink_xattr_inline()函数的修改,以正确处理inline xattr的空间预留。 - 代码补丁位于ocfs2/refcounttree.c和ocfs2/xattr.c文件中。 5. 补丁应用: - 补丁应用在ocfs2文件系统中,修复了上述问题。 这些信息表明,该漏洞与ocfs2文件系统中inline xattr的空间预留有关,修复了在reflink树重建时未正确检查目标inode是否在根元数据块中的问题。