[PATCH 3/5] drm/amdgpu: Fix null pointer dereference to aca_handle

Lazar, Lijo lijo.lazar at amd.com
Tue May 14 04:18:48 UTC 2024



On 5/14/2024 6:30 AM, Ma, Jun wrote:
> Hi Lijo & Kevin, thanks for review, will drop this patch
> 

In the original function below check is there.

        if (!handle || !info || type >= ACA_ERROR_TYPE_COUNT)
                return -EINVAL;

So moving this to a later stage is still valid.
	struct aca_error_cache *error_cache = &handle->error_cache;

Further NULL check of error_cache is not required.

Thanks,
Lijo

> Regards,
> Ma Jun
> 
> On 5/14/2024 7:13 AM, Wang, Yang(Kevin) wrote:
>> [AMD Official Use Only - AMD Internal Distribution Only]
>>
>> -----Original Message-----
>> From: Ma, Jun <Jun.Ma2 at amd.com>
>> Sent: Monday, May 13, 2024 4:56 PM
>> To: amd-gfx at lists.freedesktop.org
>> Cc: Feng, Kenneth <Kenneth.Feng at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>; Wang, Yang(Kevin) <KevinYang.Wang at amd.com>; Koenig, Christian <Christian.Koenig at amd.com>; Ma, Jun <Jun.Ma2 at amd.com>
>> Subject: [PATCH 3/5] drm/amdgpu: Fix null pointer dereference to aca_handle
>>
>> Check handle pointer before using it
>>
>> Signed-off-by: Ma Jun <Jun.Ma2 at amd.com>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
>> index 28febf33fb1b..e969a7d77b4d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
>> @@ -279,7 +279,7 @@ static struct aca_bank_error *get_bank_error(struct aca_error *aerr, struct aca_  int aca_error_cache_log_bank_error(struct aca_handle *handle, struct aca_bank_info *info,
>>                                    enum aca_error_type type, u64 count)  {
>> -       struct aca_error_cache *error_cache = &handle->error_cache;
>> +       struct aca_error_cache *error_cache;
>>         struct aca_bank_error *bank_error;
>>         struct aca_error *aerr;
>>
>> @@ -289,6 +289,10 @@ int aca_error_cache_log_bank_error(struct aca_handle *handle, struct aca_bank_in
>>         if (!count)
>>                 return 0;
>>
>> +       error_cache = &handle->error_cache;
>> [Kevin]:
>> The above code is always return non-0 value, right?
>>
>> Best Regards,
>> Kevin
>> +       if (!error_cache)
>> +               return -EINVAL;
>> +
>>         aerr = &error_cache->errors[type];
>>         bank_error = get_bank_error(aerr, info);
>>         if (!bank_error)
>> --
>> 2.34.1
>>


More information about the amd-gfx mailing list