[patch] drm/amdgpu: potential NULL dereference on error
walter harms
wharms at bfs.de
Thu Jun 11 07:35:26 PDT 2015
Am 11.06.2015 14:20, schrieb Dan Carpenter:
> On Thu, Jun 11, 2015 at 02:03:18PM +0200, walter harms wrote:
>>
>>
>> Am 11.06.2015 10:49, schrieb Dan Carpenter:
>>> debugfs_create_file() can return an error pointer if debugfs is disabled
>>> or it can return NULL on error.
>>>
>>> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> index 36be03c..adba2a1 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>>> @@ -1980,6 +1980,8 @@ static int amdgpu_debugfs_regs_init(struct amdgpu_device *adev)
>>> adev, &amdgpu_debugfs_regs_fops);
>>> if (IS_ERR(ent))
>>> return PTR_ERR(ent);
>>> + if (!ent)
>>> + return -ENOMEM;
>>> i_size_write(ent->d_inode, adev->rmmio_size);
>>> adev->debugfs_regs = ent;
>>
>>
>>
>> would PTR_ERR_OR_ZERO() by an option ?
>>
>> on the other hand,
>> why does debugfs_create_file() does not return -ENOMEN instead of NULL ?
>>
>
> Actually if debugfs is disabled then we should probably carry on. Let
> me change it to:
>
> if (IS_ERR(ent))
> return 0;
>
> if (!ent)
> return -ENOMEM;
>
You still have to check 2 types of error return here.
I simply do not understand why ebugfs_create_file() does not return -ENOMEM
(or returns NULL on any error).
re,
wh
More information about the dri-devel
mailing list