* put_device_interface() accessed "device" which was already freed to get
the module name, possibly causing a crash when you delete an interface. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27950 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -442,8 +442,9 @@ put_device_interface(struct net_device_interface *interface)
|
|||||||
wait_for_thread(interface->consumer_thread, &status);
|
wait_for_thread(interface->consumer_thread, &status);
|
||||||
|
|
||||||
net_device *device = interface->device;
|
net_device *device = interface->device;
|
||||||
|
const char* moduleName = device->module->info.name;
|
||||||
device->module->uninit_device(device);
|
device->module->uninit_device(device);
|
||||||
put_module(device->module->info.name);
|
put_module(moduleName);
|
||||||
|
|
||||||
recursive_lock_destroy(&interface->rx_lock);
|
recursive_lock_destroy(&interface->rx_lock);
|
||||||
delete interface;
|
delete interface;
|
||||||
|
|||||||
Reference in New Issue
Block a user