已关闭
【2026 HCCL通信库创新大赛-华北赛区】【崇理战队】GetLocalIpc2RemoteAddr 迭代器检查复制粘贴错误致未定义行为 #634
崇理战队创建于 7月28日关闭于 8月26日
7月29日 将 Leewis 设为负责人
Leewis
7月31日 评论:
7月31日 评论:
感谢对于社区的关注与反馈,当前反馈的问题已收到,欢迎提交pr解决该问题;提交pr前需要签署CLA协议;提交pr后需要线上编译;详情请参见 https://gitcode.com/cann/hccl/wiki/2026 HCCL通信库创新大赛 Issue%2F2026 HCCL通信库创新大赛.md


8月26日 关闭了 issue
缺陷描述
ZeroCopyAddressMgr::GetLocalIpc2RemoteAddr (src/legacy/ascend910/framework/communicator/impl/zero_copy/zero_copy_address_mgr.cc:148-158) 中:
cpp auto mapIt = addrMapping.find(remoteAddrBase); CHK_PRT_RET(rangeIt == addrRange.end(), ...); // BUG: 应为 mapIt == addrMapping.end() addr = mapIt->second;第 155 行的检查条件是复制粘贴错误,本应检查 mapIt == addrMapping.end(),却错误地再次检查了
angeIt == addrRange.end()。由于
angeIt 在第 150 行已确认不等于 end(),此检查永远为 false。当 ddrMapping 中找不到
emoteAddrBase 时,第 158 行 ddr = mapIt->second 解引用无效迭代器,属于未定义行为。
修复方案
将
angeIt 修正为 mapIt。
严重程度
严重 - 未定义行为/进程崩溃