greybus: interface: fix potential use-after-free at remove

Fix resources (accessible through sysfs) being released before interface
is deregistered.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Johan Hovold 2015-11-11 10:07:05 +01:00 committed by Greg Kroah-Hartman
parent f865734d3c
commit eeb6a6ff59

View File

@ -60,6 +60,9 @@ static void gb_interface_release(struct device *dev)
{
struct gb_interface *intf = to_gb_interface(dev);
kfree(intf->product_string);
kfree(intf->vendor_string);
kfree(intf);
}
@ -191,9 +194,6 @@ void gb_interface_remove(struct gb_interface *intf)
list_for_each_entry_safe(bundle, next, &intf->bundles, links)
gb_bundle_destroy(bundle);
kfree(intf->product_string);
kfree(intf->vendor_string);
module = intf->module;
device_unregister(&intf->dev);
put_device(&module->dev);