From b4babdf47e697da6599ce3d6008bd1c6841dacc0 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Tue, 3 Jun 2008 06:53:57 +0000 Subject: [PATCH] Move the device deletion after the unpublish call. Fixes crashes where a device is still referenced through the devfs and used right between deleting and unpublishing. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25775 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/device_manager/legacy_drivers.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/system/kernel/device_manager/legacy_drivers.cpp b/src/system/kernel/device_manager/legacy_drivers.cpp index 386edfa366..86621b1603 100644 --- a/src/system/kernel/device_manager/legacy_drivers.cpp +++ b/src/system/kernel/device_manager/legacy_drivers.cpp @@ -312,12 +312,11 @@ republish_driver(legacy_driver* driver) TRACE(("devfs: unpublishing no more present \"%s\"\n", entry->path)); LegacyDevice* device = get_device_for_path(driver, entry->path); - if (device != NULL) { + if (device != NULL) driver->devices.Remove(device); - delete device; - } devfs_unpublish_device(entry->path, true); + delete device; delete entry; }