Re: [PATCH] net: via-rhine: net: Fix a resource leak in rhine_init()

From: David Miller
Date: Fri May 03 2019 - 23:42:14 EST


From: Jia-Ju Bai <baijiaju1990@xxxxxxxxx>
Date: Sat, 4 May 2019 11:23:06 +0800

>
>
> On 2019/5/4 11:13, David Miller wrote:
>> From: Jia-Ju Bai <baijiaju1990@xxxxxxxxx>
>> Date: Sat, 4 May 2019 11:08:13 +0800
>>
>>> When platform_driver_register() fails, pci_unregister_driver() is not
>>> called to release the resource allocated by pci_register_driver().
>>>
>>> To fix this bug, error handling code for platform_driver_register()
>>> and
>>> pci_register_driver() is separately implemented.
>>>
>>> This bug is found by a runtime fuzzing tool named FIZZER written by
>>> us.
>>>
>>> Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx>
>> I think the idea here is that PCI is not enabled in the kernel, it is
>> fine for the pci register to fail and only the platform register to
>> succeed.
>>
>> You are breaking that.
>
> Okay, I can understand it.
> If so, I think that platform_driver_register() should be called before
> pci_register_driver(), and it is still necessary to separately handle
> their errors.
> If you agree, I will send a v2 patch.

It is only a failure if both fail.

If at least one succeeds, the driver can potentially probe properly.