[PATCH] drm/amdgpu: fix UBSAN array-index-out-of-bounds for ras_block_string[]
Lazar, Lijo
lijo.lazar at amd.com
Tue Jan 16 11:15:32 UTC 2024
On 1/16/2024 4:32 PM, Yang Wang wrote:
> fix array index out of bounds issue for ras_block_string[] array.
>
> Fixes: 2e3675fe4e3ee ("drm/amdgpu: Align ras block enum with firmware")
>
> Signed-off-by: Yang Wang <kevinyang.wang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> index ff6f84714f68..8004863719d0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
> @@ -74,6 +74,8 @@ const char *ras_block_string[] = {
> "mca",
> "vcn",
> "jpeg",
> + "ih",
> + "mpio",
> };
>
> const char *ras_mca_block_string[] = {
> @@ -95,7 +97,8 @@ const char *get_ras_block_str(struct ras_common_if *ras_block)
> if (!ras_block)
> return "NULL";
>
> - if (ras_block->block >= AMDGPU_RAS_BLOCK_COUNT)
> + if (ras_block->block >= AMDGPU_RAS_BLOCK_COUNT ||
> + ras_block->block >= ARRAY_SIZE(ras_block_string))
Better to keep another condition for this check and return a dynamic
string like "<block>_unnamed" or "<block>_nodesc"
Thanks,
Lijo
> return "OUT OF RANGE";
>
> if (ras_block->block == AMDGPU_RAS_BLOCK__MCA)
More information about the amd-gfx
mailing list