diff options
author | Phil Carmody <ext-phil.2.carmody@nokia.com> | 2009-12-14 20:28:12 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-12-23 11:23:44 -0800 |
commit | 99b28f1b4126582f87ce454d4affb823bddf2cd8 (patch) | |
tree | c36557d76b62d9b7b765627f569981ddb69dcfb3 /drivers/base | |
parent | e6309e7568d4b9d62298a887b10de42df11cb8c1 (diff) | |
download | linux-99b28f1b4126582f87ce454d4affb823bddf2cd8.tar.gz linux-99b28f1b4126582f87ce454d4affb823bddf2cd8.tar.bz2 linux-99b28f1b4126582f87ce454d4affb823bddf2cd8.zip |
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>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/bus.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 63c143e54a57..c0c5a43d9fb3 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -703,9 +703,9 @@ int bus_add_driver(struct device_driver *drv) return 0; out_unregister: + kobject_put(&priv->kobj); kfree(drv->p); drv->p = NULL; - kobject_put(&priv->kobj); out_put_bus: bus_put(bus); return error; |