402 Star 1.4K Fork 1.4K

GVPopenEuler / kernel

 / 详情

[openEuler-1.0-LTS] use a pointer before judging if it is a null pointer

已拒绝
自定义
创建于  
2023-05-09 19:47

问题:
https://gitee.com/openeuler/kernel/blob/openEuler-1.0-LTS/drivers/gpu/drm/amd/amdgpu/ci_dpm.c#L3947
在openEuler-1.0-LTS/drivers/gpu/drm/amd/amdgpu/ci_dpm.c中的指针vddc_table使用前为判断其是否为空指针。
修复方法:在其前面加一个判断它是否为空指针。

评论 (6)

Akaina 创建了自定义
openeuler-ci-bot 添加了
 
sig/Kernel
标签

drivers/gpu/drm/amd/amdgpu/ci_dpm.c中似乎没有vdc_table?

zhangchangzhong 关联分支设置为openEuler-1.0-LTS
Akaina 修改了描述

@zhangchangzhong 抱歉,输错了 是vddc_table 已更正

vddc_table什么时候会是空呢? 是否能构造出来

!703:[HUST CSE]Fix:Add null pointer judgement
您好,这是我上传的一条PR。
具体就是说它这个类似的结构在整个函数中多次出现,且之前的结构中都是对这个指针是否为空进行判断了的,但唯独此处漏掉了,故怀疑可能有空指针的风险。struct amdgpu_clock_voltage_dependency_table *vddc_table =&adev->pm.dpm.dyn_state.vddc_dependency_on_sclk;这句话出现在3932行。
而对于这其中的adev->pm.dpm.dyn_state.vddc_dependency_on_sclk
输入图片说明
举例来说,在3585行,struct amdgpu_clock_voltage_dependency_table *allowed_sclk_vddc_table =
&adev->pm.dpm.dyn_state.vddc_dependency_on_sclk;这句话中也是这个pm.dpm.dyn_state.vddc_dependency_on_sclk
而这之后,对allowed_sclk_vddc_table是否为空指针在3593行进行了判断。
类似的结构还在全文中多次出现,故认为这里有空指针的风险。

ci_populate_bapm_vddc_vid_sidd()、ci_get_std_voltage_value_sidd()、ci_populate_smc_initial_state()、ci_populate_ulv_level()、ci_populate_single_memory_level()也访问了adev->pm.dpm.dyn_state.vddc_dependency_on_sclk但没有判空,这个文件中类似的问题还有很多,我理解还是要分析清楚流程看下是否会有真实的触发场景,否则理论上所有指针在使用前都得加个判空。

zhangchangzhong 任务状态待办的 修改为已拒绝

登录 后才可以发表评论

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

搜索帮助

344bd9b3 5694891 D2dac590 5694891