[PATCH 1/5] drm/amdgpu: Move a variable assignment behind a null pointer check in amdgpu_ras_interrupt_dispatch()
Markus Elfring
Markus.Elfring at web.de
Tue Apr 11 14:45:36 UTC 2023
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
>> @@ -1730,11 +1730,12 @@ int amdgpu_ras_interrupt_dispatch(struct amdgpu_device *adev,
>> struct ras_dispatch_if *info)
>> {
>> struct ras_manager *obj = amdgpu_ras_find_obj(adev, &info->head);
>> - struct ras_ih_data *data = &obj->ih_data;
>> + struct ras_ih_data *data;
> I'm curious, this only takes the address of obj->ih_data.
Even if a null pointer would accidentally be returned by a call of
the function “amdgpu_ras_find_obj”?
https://elixir.bootlin.com/linux/v6.3-rc6/source/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c#L618
> It doesn't dereference the pointer until after the !obj check below.
Does the used arrow operator indicate a pointer dereference?
> How is this undefined behaviour?
I guess that another information source can be helpful for such an issue.
https://wiki.sei.cmu.edu/confluence/display/c/EXP34-C.+Do+not+dereference+null+pointers?focusedCommentId=405504153#comment-405504153
Regards,
Markus
More information about the amd-gfx
mailing list