* [PATCH] drm: amd: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
@ 2024-12-02 8:00 Ivan Stepchenko
2024-12-02 21:26 ` Alex Deucher
0 siblings, 1 reply; 2+ messages in thread
From: Ivan Stepchenko @ 2024-12-02 8:00 UTC (permalink / raw)
To: Kenneth Feng
Cc: Ivan Stepchenko, Alex Deucher, Christian König, Xinhui Pan,
David Airlie, Simona Vetter, Tim Huang, Dr. David Alan Gilbert,
Alexander Richards, Samasth Norway Ananda, Jesse Zhang, Rex Zhu,
amd-gfx, dri-devel, lvc-project, linux-kernel, stable
The function atomctrl_get_smc_sclk_range_table() does not check the return
value of smu_atom_get_data_table(). If smu_atom_get_data_table() fails to
retrieve SMU_Info table, it returns NULL which is later dereferenced.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: a23eefa2f461 ("drm/amd/powerplay: enable dpm for baffin.")
Cc: stable@vger.kernel.org
Signed-off-by: Ivan Stepchenko <sid@itb.spb.ru>
---
drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
index fe24219c3bf4..4bd92fd782be 100644
--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
+++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
@@ -992,6 +992,8 @@ int atomctrl_get_smc_sclk_range_table(struct pp_hwmgr *hwmgr, struct pp_atom_ctr
GetIndexIntoMasterTable(DATA, SMU_Info),
&size, &frev, &crev);
+ if (!psmu_info)
+ return -EINVAL;
for (i = 0; i < psmu_info->ucSclkEntryNum; i++) {
table->entry[i].ucVco_setting = psmu_info->asSclkFcwRangeEntry[i].ucVco_setting;
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] drm: amd: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
2024-12-02 8:00 [PATCH] drm: amd: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table Ivan Stepchenko
@ 2024-12-02 21:26 ` Alex Deucher
0 siblings, 0 replies; 2+ messages in thread
From: Alex Deucher @ 2024-12-02 21:26 UTC (permalink / raw)
To: Ivan Stepchenko
Cc: Kenneth Feng, Alex Deucher, Christian König, Xinhui Pan,
David Airlie, Simona Vetter, Tim Huang, Dr. David Alan Gilbert,
Alexander Richards, Samasth Norway Ananda, Jesse Zhang, Rex Zhu,
amd-gfx, dri-devel, lvc-project, linux-kernel, stable
On Mon, Dec 2, 2024 at 3:27 AM Ivan Stepchenko <sid@itb.spb.ru> wrote:
>
> The function atomctrl_get_smc_sclk_range_table() does not check the return
> value of smu_atom_get_data_table(). If smu_atom_get_data_table() fails to
> retrieve SMU_Info table, it returns NULL which is later dereferenced.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
In practice this should never happen as this code only gets called on
polaris chips and the vbios data table will always be present on those
chips. That said, I've applied it to align with the logic for other
functions in this file.
Thanks,
Alex
> Fixes: a23eefa2f461 ("drm/amd/powerplay: enable dpm for baffin.")
> Cc: stable@vger.kernel.org
> Signed-off-by: Ivan Stepchenko <sid@itb.spb.ru>
> ---
> drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
> index fe24219c3bf4..4bd92fd782be 100644
> --- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
> +++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c
> @@ -992,6 +992,8 @@ int atomctrl_get_smc_sclk_range_table(struct pp_hwmgr *hwmgr, struct pp_atom_ctr
> GetIndexIntoMasterTable(DATA, SMU_Info),
> &size, &frev, &crev);
>
> + if (!psmu_info)
> + return -EINVAL;
>
> for (i = 0; i < psmu_info->ucSclkEntryNum; i++) {
> table->entry[i].ucVco_setting = psmu_info->asSclkFcwRangeEntry[i].ucVco_setting;
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-02 21:26 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-02 8:00 [PATCH] drm: amd: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table Ivan Stepchenko
2024-12-02 21:26 ` Alex Deucher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox