From 34751079813333bb652f874ae9994c0b140596cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 3 Jun 2013 21:16:38 +0200 Subject: [PATCH] network stack: added missing put_device_interface(). * Part of #7040, thanks diver! --- src/add-ons/kernel/network/stack/link.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/stack/link.cpp b/src/add-ons/kernel/network/stack/link.cpp index a1341aafc7..c88f19b497 100644 --- a/src/add-ons/kernel/network/stack/link.cpp +++ b/src/add-ons/kernel/network/stack/link.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2006-2010, Haiku, Inc. All Rights Reserved. + * Copyright 2006-2013, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -467,8 +467,10 @@ link_control(net_protocol* _protocol, int level, int option, void* value, if (interface == NULL) return B_DEVICE_NOT_FOUND; - if (user_memcpy(&request, value, sizeof(ifmediareq)) != B_OK) + if (user_memcpy(&request, value, sizeof(ifmediareq)) != B_OK) { + put_device_interface(interface); return B_BAD_ADDRESS; + } // TODO: see above. if (interface->device->module->control(interface->device, @@ -478,6 +480,7 @@ link_control(net_protocol* _protocol, int level, int option, void* value, request.ifm_active = request.ifm_current = interface->device->media; } + put_device_interface(interface); return user_memcpy(value, &request, sizeof(struct ifmediareq)); }