From 67678a989e49ff7bac0a79bf30c240c27f6f96d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 2 Aug 2010 21:17:33 +0000 Subject: [PATCH] * put_device_interface() now also accepts a NULL pointer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37852 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/device_interfaces.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/add-ons/kernel/network/stack/device_interfaces.cpp b/src/add-ons/kernel/network/stack/device_interfaces.cpp index a0b300d776..de97627ccc 100644 --- a/src/add-ons/kernel/network/stack/device_interfaces.cpp +++ b/src/add-ons/kernel/network/stack/device_interfaces.cpp @@ -357,13 +357,15 @@ list_device_interfaces(void* _buffer, size_t* bufferSize) void put_device_interface(struct net_device_interface* interface) { + if (interface == NULL) + return; + if (atomic_add(&interface->ref_count, -1) != 1) return; - { - MutexLocker locker(sLock); - sInterfaces.Remove(interface); - } + MutexLocker locker(sLock); + sInterfaces.Remove(interface); + locker.Unlock(); uninit_fifo(&interface->receive_queue); status_t status;