问题:
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使用前为判断其是否为空指针。
修复方法:在其前面加一个判断它是否为空指针。
Hi Akaina, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers: @YangYingliang , @成坚 (CHENG Jian) , @jiaoff , @刘勇强 , @wangxiongfeng , @朱科潜 , @WangShaoBo , @lujialin , @Xu Kuohai , @冷嘲啊 , @Lingmingqiang , @yuzenghui , @juntian , @OSSIM , @陈结松 , @whoisxxx , @koulihong , @刘恺 , @hanjun-guo , @woqidaideshi , @Chiqijun , @Kefeng , @ThunderTown , @AlexGuo , @kylin-mayukun , @Zheng Zucheng , @柳歆 , @Jackie Liu , @zhujianwei001 , @郑振鹏 , @SuperSix173 , @colyli , @Zhang Yi , @htforge , @Qiuuuuu , @Yuehaibing , @xiehaocheng , @guzitao , @CTC-Xibo.Wang , @zhanghongchen , @chen wei , @Jason Zeng , @苟浩 , @DuanqiangWen , @georgeguo , @毛泓博 , @AllenShi , @zhangjialin , @Wei Li , @tcc@hello , @谭小飞 , @Fred Kimmy , @LiYihang , @young1c , @hucz , @WangBoe2022 , @chenke , @李力军 , @Yang Shen , @wsoydl , @sanglipeng , @zhangchangzhong , @jimmy_hero , @YGN-NDWD-Official , @Xie XiuQi , @zhengzengkai
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
drivers/gpu/drm/amd/amdgpu/ci_dpm.c中似乎没有vdc_table?
@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但没有判空,这个文件中类似的问题还有很多,我理解还是要分析清楚流程看下是否会有真实的触发场景,否则理论上所有指针在使用前都得加个判空。
登录 后才可以发表评论