11 Star 86 Fork 744

OpenHarmony / startup_init

 / 详情

SplitString函数存在栈溢出

已完成
缺陷
创建于  
2021-12-01 11:18

【模块名_概率】简要描述:

SplitString函数存在栈溢出风险。

【环境信息】:
sunxi d1 nezha riscv openharmony

【预置条件】:

【测试步骤】:

【预期结果】:

【实际结果】:

【恢复手段】:

【出现概率】:问题出现次数/实际测试次数
必现

【定位信息】:

int SplitString(char *srcPtr, const char *del, char **dstPtr, int maxNum)
{
    INIT_CHECK_RETURN_VALUE(srcPtr != NULL && dstPtr != NULL && del != NULL, -1);
    char *buf = NULL;
    dstPtr[0] = strtok_r(srcPtr, del, &buf);
    int counter = 0;
    while (dstPtr[counter] != NULL && (counter < maxNum)) {
        counter++;
        dstPtr[counter] = strtok_r(NULL, del, &buf);
    }
    dstPtr[counter] = NULL;
    return counter;
}

这里dstPtr的个数最大为maxNum,其数组下标最多就只能是[maxNum-1]。
但是执行while循环后,counter变为maxNum,这里就相当于对dstPtr[maxNum]进行赋值,栈越界了。

评论 (1)

allwinnertech-d1 创建了缺陷
展开全部操作日志

确实会栈越界的风险,我们马上改,谢谢你的反馈

熊磊 任务状态待办的 修改为已确认
熊磊 通过openharmony/startup_init Pull Request !180任务状态已确认 修改为已完成

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
C
1
https://gitee.com/openharmony/startup_init.git
git@gitee.com:openharmony/startup_init.git
openharmony
startup_init
startup_init

搜索帮助