SIGSEGV in receive_xattr() on FreeBSD - qsort() called with wrong element count #871 漏洞概述 在 函数中, 使用了从网络接收到的 值,而不是实际添加到 数组中的条目数量。当某些条目被跳过时, 会读取超出数组有效部分的内存,导致传递给比较器的指针无效( ),从而引发 崩溃。 影响范围 受影响系统:FreeBSD 服务器 触发条件:当 Linux 客户端(以 root 运行)传输带有扩展属性(如 , )的文件到非 Linux 接收端(如 FreeBSD 以非 root 运行)时触发。 根本原因:非 Linux 接收端会过滤掉这些命名空间,导致 ,而 仍使用错误的 值进行排序,访问未初始化或垃圾数据。 修复方案 将 调用中的 参数替换为 ,确保只排序实际添加的条目。 修复代码 触发命令示例