从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 两个并发线程可能同时调用 函数,一个来自 工作队列,另一个来自一个失败的任务。 - 在后者的情况下,错误回滚会以相反的顺序释放退出处理程序,导致未初始化的网络。 2. 问题根源: - 调用 函数。 - 在任何死亡的网络中都会选择 ,而不仅仅是通过 列表传递的 。 3. 影响: - 的错误回滚可能会“偷走”并销毁属于退出网络的 timewait 套接字。 - 这允许退出工作者继续调用 ,而无需预期的 1 -> 0 转换,导致崩溃。 4. 修复措施: - 添加互斥量以强制严格顺序,防止其他任务在互斥量所有者完成 之前调用 。 - 这样可以确保 在所有死亡网络的 被移除之前被调用。 5. 补丁内容: - 添加了 宏。 - 修改了 函数,确保在调用 之前锁定 。 6. 补丁应用: - 应用补丁后, 文件中进行了修改。 这些信息表明,该漏洞与并发线程调用 函数时的错误回滚顺序有关,可能导致未初始化的网络和套接字的意外释放。修复措施通过添加互斥量来确保严格顺序,防止此类问题的发生。