[PATCH next] drm/amdgpu: Fix off by one in current_memory_partition_show()

Dan Carpenter posted 1 patch 1 month, 2 weeks ago
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH next] drm/amdgpu: Fix off by one in current_memory_partition_show()
Posted by Dan Carpenter 1 month, 2 weeks ago
The >= ARRAY_SIZE() should be > ARRAY_SIZE() to prevent an out of
bounds read.

Fixes: 012be6f22c01 ("drm/amdgpu: Add sysfs interfaces for NPS mode")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index ddf716d27f3a..75c9291ac3eb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -1199,7 +1199,7 @@ static ssize_t current_memory_partition_show(
 	enum amdgpu_memory_partition mode;
 
 	mode = adev->gmc.gmc_funcs->query_mem_partition_mode(adev);
-	if ((mode > ARRAY_SIZE(nps_desc)) ||
+	if ((mode >= ARRAY_SIZE(nps_desc)) ||
 	    (BIT(mode) & AMDGPU_ALL_NPS_MASK) != BIT(mode))
 		return sysfs_emit(buf, "UNKNOWN\n");
 
-- 
2.45.2
Re: [PATCH next] drm/amdgpu: Fix off by one in current_memory_partition_show()
Posted by Lazar, Lijo 1 month, 2 weeks ago

On 10/11/2024 12:05 AM, Dan Carpenter wrote:
> The >= ARRAY_SIZE() should be > ARRAY_SIZE() to prevent an out of
> bounds read.
> 
> Fixes: 012be6f22c01 ("drm/amdgpu: Add sysfs interfaces for NPS mode")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>

Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>

Thanks,
Lijo

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index ddf716d27f3a..75c9291ac3eb 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -1199,7 +1199,7 @@ static ssize_t current_memory_partition_show(
>  	enum amdgpu_memory_partition mode;
>  
>  	mode = adev->gmc.gmc_funcs->query_mem_partition_mode(adev);
> -	if ((mode > ARRAY_SIZE(nps_desc)) ||
> +	if ((mode >= ARRAY_SIZE(nps_desc)) ||
>  	    (BIT(mode) & AMDGPU_ALL_NPS_MASK) != BIT(mode))
>  		return sysfs_emit(buf, "UNKNOWN\n");
>
Re: [PATCH next] drm/amdgpu: Fix off by one in current_memory_partition_show()
Posted by Alex Deucher 1 month, 1 week ago
Applied.  Thanks!

Alex

On Thu, Oct 10, 2024 at 11:18 PM Lazar, Lijo <lijo.lazar@amd.com> wrote:
>
>
>
> On 10/11/2024 12:05 AM, Dan Carpenter wrote:
> > The >= ARRAY_SIZE() should be > ARRAY_SIZE() to prevent an out of
> > bounds read.
> >
> > Fixes: 012be6f22c01 ("drm/amdgpu: Add sysfs interfaces for NPS mode")
> > Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
>
> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
>
> Thanks,
> Lijo
>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > index ddf716d27f3a..75c9291ac3eb 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > @@ -1199,7 +1199,7 @@ static ssize_t current_memory_partition_show(
> >       enum amdgpu_memory_partition mode;
> >
> >       mode = adev->gmc.gmc_funcs->query_mem_partition_mode(adev);
> > -     if ((mode > ARRAY_SIZE(nps_desc)) ||
> > +     if ((mode >= ARRAY_SIZE(nps_desc)) ||
> >           (BIT(mode) & AMDGPU_ALL_NPS_MASK) != BIT(mode))
> >               return sysfs_emit(buf, "UNKNOWN\n");
> >