2022-01-05 09:10:09

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] drm/amdkfd: Check for null pointer after calling kmemdup

As the possible failure of the allocation, kmemdup() may return NULL
pointer.
Therefore, it should be better to check the 'props2' in order to prevent
the dereference of NULL pointer.

Fixes: 3a87177eb141 ("drm/amdkfd: Add topology support for dGPUs")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
index c60e82697385..d15380c65c6d 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
@@ -410,6 +410,9 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
return -ENODEV;
/* same everything but the other direction */
props2 = kmemdup(props, sizeof(*props2), GFP_KERNEL);
+ if (!props2)
+ return -ENOMEM;
+
props2->node_from = id_to;
props2->node_to = id_from;
props2->kobj = NULL;
--
2.25.1



2022-01-05 15:57:04

by Felix Kuehling

[permalink] [raw]
Subject: Re: [PATCH] drm/amdkfd: Check for null pointer after calling kmemdup

Am 2022-01-05 um 4:09 a.m. schrieb Jiasheng Jiang:
> As the possible failure of the allocation, kmemdup() may return NULL
> pointer.
> Therefore, it should be better to check the 'props2' in order to prevent
> the dereference of NULL pointer.
>
> Fixes: 3a87177eb141 ("drm/amdkfd: Add topology support for dGPUs")
> Signed-off-by: Jiasheng Jiang <[email protected]>

Reviewed-by: Felix Kuehling <[email protected]>


> ---
> drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> index c60e82697385..d15380c65c6d 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
> @@ -410,6 +410,9 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
> return -ENODEV;
> /* same everything but the other direction */
> props2 = kmemdup(props, sizeof(*props2), GFP_KERNEL);
> + if (!props2)
> + return -ENOMEM;
> +
> props2->node_from = id_to;
> props2->node_to = id_from;
> props2->kobj = NULL;

2022-01-10 21:23:37

by Felix Kuehling

[permalink] [raw]
Subject: Re: [PATCH] drm/amdkfd: Check for null pointer after calling kmemdup

On 2022-01-05 10:56 a.m., Felix Kuehling wrote:
> Am 2022-01-05 um 4:09 a.m. schrieb Jiasheng Jiang:
>> As the possible failure of the allocation, kmemdup() may return NULL
>> pointer.
>> Therefore, it should be better to check the 'props2' in order to prevent
>> the dereference of NULL pointer.
>>
>> Fixes: 3a87177eb141 ("drm/amdkfd: Add topology support for dGPUs")
>> Signed-off-by: Jiasheng Jiang <[email protected]>
> Reviewed-by: Felix Kuehling <[email protected]>
I applied the patch to amd-staging-drm-next.

Regards,
  Felix


>
>> ---
>> drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
>> index c60e82697385..d15380c65c6d 100644
>> --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
>> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c
>> @@ -410,6 +410,9 @@ static int kfd_parse_subtype_iolink(struct crat_subtype_iolink *iolink,
>> return -ENODEV;
>> /* same everything but the other direction */
>> props2 = kmemdup(props, sizeof(*props2), GFP_KERNEL);
>> + if (!props2)
>> + return -ENOMEM;
>> +
>> props2->node_from = id_to;
>> props2->node_to = id_from;
>> props2->kobj = NULL;