From 75b83073c2c70f06ae063a2fb5430a012d2c0bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 17 Aug 2010 11:43:22 +0000 Subject: [PATCH] * Getting an address leaked a reference. This fixes that interfaces could not really be deleted (a reference of them was kept in memory). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38179 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/datalink.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/network/stack/datalink.cpp b/src/add-ons/kernel/network/stack/datalink.cpp index fb8caa57a1..cc8a58a389 100644 --- a/src/add-ons/kernel/network/stack/datalink.cpp +++ b/src/add-ons/kernel/network/stack/datalink.cpp @@ -772,8 +772,12 @@ interface_protocol_control(net_datalink_protocol* _protocol, int32 option, size_t maxLength = length - offsetof(ifreq, ifr_addr); - return fill_address(*interfaceAddress->AddressFor(option), + status_t status = fill_address( + *interfaceAddress->AddressFor(option), &((struct ifreq*)argument)->ifr_addr, maxLength); + + interfaceAddress->ReleaseReference(); + return status; } case B_SOCKET_COUNT_ALIASES: