isa: Prevent NULL dereference in isa_bus driver callbacks
Subsystems (2)
PATCH 1/1 isa: Prevent NULL dereference in isa_bus driver callbacks
The isa_driver structure for an isa_bus device is stored in the device platform_data member of the respective device structure. This platform_data member may be reset to NULL if isa_driver match callback for the device fails, indicating a device unsupported by the ISA driver.
This patch fixes a possible NULL pointer dereference if one of the isa_driver callbacks to attempted for an unsupported device. This error should not occur in practice since ISA devices are typically manually configured and loaded by the users, but we may as well prevent this error from popping up for the 0day testers.
--- drivers/base/isa.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/base/isa.c +5 -5
@@ -39,7 +39,7 @@ static int isa_bus_probe(struct device *dev) {struct isa_driver *isa_driver = dev->platform_data; -if (isa_driver->probe) +if (isa_driver && isa_driver->probe)return isa_driver->probe (dev,to_isa_dev (dev)->id);return 0 ;
@@ -49,7 +49,7 @@ static int isa_bus_remove(struct device *dev) {struct isa_driver *isa_driver = dev->platform_data; -if (isa_driver->remove) +if (isa_driver && isa_driver->remove)return isa_driver->remove (dev,to_isa_dev (dev)->id);return 0 ;
@@ -59,7 +59,7 @@ static void isa_bus_shutdown(struct device *dev) {struct isa_driver *isa_driver = dev->platform_data; -if (isa_driver->shutdown) +if (isa_driver && isa_driver->shutdown) isa_driver->shutdown (dev,to_isa_dev (dev)->id); }
@@ -67,7 +67,7 @@ static int isa_bus_suspend(struct device *dev, pm_message_t state) {struct isa_driver *isa_driver = dev->platform_data; -if (isa_driver->suspend) +if (isa_driver && isa_driver->suspend)return isa_driver->suspend (dev,to_isa_dev (dev)->id, state);return 0 ;
@@ -77,7 +77,7 @@ static int isa_bus_resume(struct device *dev) {struct isa_driver *isa_driver = dev->platform_data; -if (isa_driver->resume) +if (isa_driver && isa_driver->resume)return isa_driver->resume (dev,to_isa_dev (dev)->id);return 0 ;
Signature · 1 line
2.15.0
Quoted 6 lines · William Breathitt Gray
This patch fixes a possible NULL pointer dereference if one of the
isa_drivercallbacks to attempted for an unsupported device. This error should not occur in practice since ISA devices are typically manually configured and loaded by the users, but we may as well prevent this error from popping up for the 0day testers.
Thanks. Acked-by: Linus Torvalds <[email protected]>
And it doesn't seem critical enough for me to take directly this late in the 4.14 game, so I guess I'll get it from the usual channels.
Linus
Greg Kroah-Hartman
maintainerQuoted 9 lines · Linus Torvalds
Quoted 6 lines · William Breathitt Gray
This patch fixes a possible NULL pointer dereference if one of the
isa_drivercallbacks to attempted for an unsupported device. This error should not occur in practice since ISA devices are typically manually configured and loaded by the users, but we may as well prevent this error from popping up for the 0day testers.
Quoted 4 lines
Thanks. Acked-by: Linus Torvalds <[email protected]>
And it doesn't seem critical enough for me to take directly this late in the 4.14 game, so I guess I'll get it from the usual channels.
I'll queue it up, given that this has been a problem for 10+ years :)
thanks,
greg k-h