已关闭
【缺陷报告】空指针解引用 - 文件test_dev_func_runner.h - 函数MemoryHelper::AllocZero - 行号96 #3016
zhangjunkai9创建于 8月18日关闭于 8月18日
杨旭
8月18日 评论:
8月18日 评论:
感谢参与 PyPTO 生态~,相关问题涉及具体模块代码实现细节,我将联系具体模块负责人,进行进一步确认处理~


8月18日 将 chengding888 设为负责人
杨旭
8月18日 评论:
8月18日 评论:
@chengding888 请协助看下对应实现,是否确实有问题,是否需要修改


chengding888
8月18日 评论:
8月18日 评论:


8月18日 关联了pull request:fix(test): Add nullptr check.
8月18日 issue类型由 任务 改变为 缺陷
8月18日 issue状态由 待办的 改变为 已解决
8月18日 关闭了 issue
8月18日 添加了label:resolved
缺陷信息
缺陷描述
AllocDev 函数在 totalSize 溢出(第71行)或 malloc 失败(第76行)时返回 nullptr,AllocZero 在第94行调用 AllocDev 后未对返回值 devPtr 做空指针校验,直接在第96行执行 memset(devPtr, 0, size),若 devPtr 为 nullptr 则导致空指针解引用崩溃。
数据流证据
传播路径:
修复建议
uint8_t* AllocZero(uint64_t size, uint8_t** cachedDevAddrHolder) { (void)cachedDevAddrHolder; uint8_t* devPtr = AllocDev(size, nullptr); if (devPtr == nullptr) { return nullptr; } if (isTest_) memset(devPtr, 0, size); else RuntimeMemset(devPtr, size, 0, size); return devPtr; }