已关闭
【缺陷报告】内存分配大小错误 - 文件stft_tiling_base.cpp - 函数GetPlatformInfo - 行号62 #2778
zhangjunkai9创建于 17 天前关闭于 11 天前
陈思
16 天前 评论:
16 天前 评论:
分析结论
已核对当前 master。fallback GetPlatformInfo 获取 L0A/L0B/L0C 容量时三次都传入了 CoreMemType::UB,与变量语义和另一实现不一致,复制粘贴错误成立。
但在当前 STFT 目录内继续追踪后,没有找到这些 fallback 字段参与后续 tiling 计算的读取点,因此现阶段只能确认“平台信息记录错误”的潜在缺陷,Issue 所述内存分配错误影响尚未形成完整可达链路。
建议改用对应的 L0_A/L0_B/L0_C 类型,并为 fallback 平台信息增加字段值测试;如认为已有业务影响,请补充实际消费点或复现。后续由责任人安排修复和验证。


east_yang
12 天前 评论:
12 天前 评论:
对应环境变量l0ASizePlatform、l0BSizePlatform、l0CSizePlatform复检后不涉及真实引用消费,不涉及内存错误使用的业务风险,属于命名不规范和冗余代码问题,可以对代码进行优化修改。


11 天前 关闭了 issue
11 天前 添加了label:resolved
缺陷信息
缺陷描述
第62/66/70行获取L0_A/L0_B/L0_C内存大小时均使用了CoreMemType::UB而非正确的L0_A/L0_B/L0_C枚举值,是复制粘贴错误。导致l0ASize/l0BSize/l0CSize实际存储的均为UB大小,若下游使用这些值进行缓冲区分配计算将导致内存分配与实际L0缓存大小不匹配
事实核查
数据流证据
传播路径:
修复建议
ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::L0_A, l0ASizePlatform); l0ASize = static_cast<int64_t>(l0ASizePlatform); uint64_t l0BSizePlatform; ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::L0_B, l0BSizePlatform); l0BSize = static_cast<int64_t>(l0BSizePlatform); uint64_t l0CSizePlatform; ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::L0_C, l0CSizePlatform); l0CSize = static_cast<int64_t>(l0CSizePlatform);