linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* hwmon: (sis5595) potential null pointer dereference in probe
@ 2020-08-04 11:50 Evgeny Novikov
  2020-08-04 14:33 ` Guenter Roeck
  0 siblings, 1 reply; 3+ messages in thread
From: Evgeny Novikov @ 2020-08-04 11:50 UTC (permalink / raw)
  To: Jean Delvare; +Cc: Guenter Roeck, linux-hwmon, linux-kernel

sis5595_pci_probe() registers platform driver callbacks and just then
initializes global pointer variable s_bridge. sis5595_probe() may
dereference it before this happens that can result in null pointer
dereference.

We can not swap registration of platform driver callbacks with
initialization of s_bridge since sm_sis5595_exit() assumes the
current order. Perhaps it has sense to implement a pci_driver.remove
callback that will take care about deregistration of platform driver
callbacks.

Found by Linux Driver Verification project (linuxtesting.org).


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: hwmon: (sis5595) potential null pointer dereference in probe
  2020-08-04 11:50 hwmon: (sis5595) potential null pointer dereference in probe Evgeny Novikov
@ 2020-08-04 14:33 ` Guenter Roeck
  2020-08-04 14:48   ` Evgeny Novikov
  0 siblings, 1 reply; 3+ messages in thread
From: Guenter Roeck @ 2020-08-04 14:33 UTC (permalink / raw)
  To: Evgeny Novikov, Jean Delvare; +Cc: linux-hwmon, linux-kernel

On 8/4/20 4:50 AM, Evgeny Novikov wrote:
> sis5595_pci_probe() registers platform driver callbacks and just then
> initializes global pointer variable s_bridge. sis5595_probe() may
> dereference it before this happens that can result in null pointer
> dereference.
> 
sis5595_probe() is only called after the device is registered,
which happens in sis5595_device_add() after s_bridge is set. This is
a southbridge, so there won't be any hot insertion/removal events.

> We can not swap registration of platform driver callbacks with
> initialization of s_bridge since sm_sis5595_exit() assumes the
> current order. Perhaps it has sense to implement a pci_driver.remove
> callback that will take care about deregistration of platform driver
> callbacks.
>

Agreed regarding the remove function. However, given the age of the chip,
I'd rather remove the driver than spending time on cleanup efforts.
This looks like a perfect candidate for depreciation.

Guenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: hwmon: (sis5595) potential null pointer dereference in probe
  2020-08-04 14:33 ` Guenter Roeck
@ 2020-08-04 14:48   ` Evgeny Novikov
  0 siblings, 0 replies; 3+ messages in thread
From: Evgeny Novikov @ 2020-08-04 14:48 UTC (permalink / raw)
  To: Guenter Roeck, Jean Delvare; +Cc: linux-hwmon, linux-kernel, ldv-project-org

04.08.2020, 17:33, "Guenter Roeck" <linux@roeck-us.net>:
> On 8/4/20 4:50 AM, Evgeny Novikov wrote:
>>  sis5595_pci_probe() registers platform driver callbacks and just then
>>  initializes global pointer variable s_bridge. sis5595_probe() may
>>  dereference it before this happens that can result in null pointer
>>  dereference.
>
> sis5595_probe() is only called after the device is registered,
> which happens in sis5595_device_add() after s_bridge is set. This is
> a southbridge, so there won't be any hot insertion/removal events.
>

Thank you for this hint. We need to tune our models appropriately.

>>  We can not swap registration of platform driver callbacks with
>>  initialization of s_bridge since sm_sis5595_exit() assumes the
>>  current order. Perhaps it has sense to implement a pci_driver.remove
>>  callback that will take care about deregistration of platform driver
>>  callbacks.
>
> Agreed regarding the remove function. However, given the age of the chip,
> I'd rather remove the driver than spending time on cleanup efforts.
> This looks like a perfect candidate for depreciation.
>

This is completely up to you. Anyway the driver does not have the bug.

Best regards,
Evgeny

> Guenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-04 14:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-04 11:50 hwmon: (sis5595) potential null pointer dereference in probe Evgeny Novikov
2020-08-04 14:33 ` Guenter Roeck
2020-08-04 14:48   ` Evgeny Novikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).