已关闭
【缺陷报告】容器访问越界 - 文件backend.cpp - 函数CostModelAgent::ParseDynTopo - 行号147 #3021
zhangjunkai9创建于 8月18日关闭于 8月18日
杨旭
8月18日 评论:
8月18日 评论:
感谢参与 PyPTO 生态~,相关问题涉及具体模块代码实现细节,我将联系具体模块负责人,进行进一步确认处理~


杨旭
8月18日 评论:
8月18日 评论:
@zhiweiyuan 请协助看下对应实现,是否确实有问题,是否需要修改。


8月18日 将 zhiweiyuan 设为负责人
8月18日 添加了label:Simulation
8月18日 issue类型由 任务 改变为 缺陷
zhiweiyuan
8月18日 评论:
8月18日 评论:
已解决,感谢您的问题反馈


8月18日 issue状态由 待办的 改变为 已完成
8月18日 关闭了 issue
8月18日 添加了label:resolved
缺陷信息
缺陷描述
ParseDynTopo 解析外部文件内容到 fields 向量,仅将成功解析为 uint64_t 的值加入 fields,然后不加校验直接以 fields[seqPos] 到 fields[funcHashPos](共13个下标位置)访问。若文件某行有效数值字段不足13个,则越界访问导致未定义行为。数据来源于外部文件(topo JSON),属于不可信输入,必须校验。
数据流证据
传播路径:
调用链
可达调用链1 起点:
(entry functions)→ 终点:npu::tile_fwk::CostModelAgent::ParseDynTopo深度:8修复建议
if (fields.size() <= staticSuccCountPos) { SIMULATION_LOGE(CostModel::ExternalErrorScene::FILE_CONTENT_ERROR, "Invalid topo line: expected at least %llu fields, got %zu", staticSuccCountPos + 1, fields.size()); continue; }