From ea93f584ad64b3bc9effa318a882dac27e1c935a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 10 Oct 2008 18:38:12 +0000 Subject: [PATCH] * 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 --- src/add-ons/kernel/network/stack/interfaces.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/network/stack/interfaces.cpp b/src/add-ons/kernel/network/stack/interfaces.cpp index 2475e88ce0..9bc0f7d75a 100644 --- a/src/add-ons/kernel/network/stack/interfaces.cpp +++ b/src/add-ons/kernel/network/stack/interfaces.cpp @@ -442,8 +442,9 @@ put_device_interface(struct net_device_interface *interface) wait_for_thread(interface->consumer_thread, &status); net_device *device = interface->device; + const char* moduleName = device->module->info.name; device->module->uninit_device(device); - put_module(device->module->info.name); + put_module(moduleName); recursive_lock_destroy(&interface->rx_lock); delete interface;