关键信息 漏洞类型: CAN ISOTP timer transaction timeout issue 修复描述: - 之前CAN ISOTP协议栈有两个功能: 1. 发送两个连续帧,给定时间间隔。 2. 监控流控制帧和回显帧的超时。 - 这导致了更大的状态检查,并且在测试中发现了由syzbot触发的问题,该问题启用了panic_on_warn特性。 - 现在将 函数拆分为 和 ,分别处理上述两个功能,使用单独的定时器回调。 - 两个简化的定时器现在以单次模式运行,使状态转换(特别是与isotp_rcv_echo相关)更易于理解。 修复提交: - 修复了86033786f57 ("can: isotp: fix tx state handling for echo tx processing")的问题。 - 提交者: syzbot+5adee33abab61f5b017@syzkaller.appspotmail.com - 签名者: Oliver Hartkopp - 链接: https://lore.kernel.org/all/20230104145701.2422-1-socketcan@hartkopp.net 代码更改: - 修改了 文件,共65行,其中21行插入,36行删除。 - 主要修改包括: - 将 和 添加到 中。 - 更新了 和 函数,以处理新的定时器逻辑。 - 在 和 函数中取消了旧的定时器。 影响: - 改善了CAN ISOTP协议栈的稳定性和可维护性,避免了潜在的panic_on_warn问题。