Эх сурвалжийг харах

driver core: Prevent reference to freed memory on error path

priv is drv->p. So only free drv->p after we've finished using priv.

Found using a static code analysis tool

Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Phil Carmody 15 жил өмнө
parent
commit
99b28f1b41

+ 1 - 1
drivers/base/bus.c

@@ -703,9 +703,9 @@ int bus_add_driver(struct device_driver *drv)
 	return 0;
 	return 0;
 
 
 out_unregister:
 out_unregister:
+	kobject_put(&priv->kobj);
 	kfree(drv->p);
 	kfree(drv->p);
 	drv->p = NULL;
 	drv->p = NULL;
-	kobject_put(&priv->kobj);
 out_put_bus:
 out_put_bus:
 	bus_put(bus);
 	bus_put(bus);
 	return error;
 	return error;