hrev45737 adds 1 changeset to branch 'master' old head: 43f7771e2c5d6813ff0eaea1c7a20f8f86d9d27c new head: 34751079813333bb652f874ae9994c0b140596cb overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=3475107+%5E43f7771 ---------------------------------------------------------------------------- 3475107: network stack: added missing put_device_interface(). * Part of #7040, thanks diver! [ Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45737 Commit: 34751079813333bb652f874ae9994c0b140596cb URL: http://cgit.haiku-os.org/haiku/commit/?id=3475107 Author: Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> Date: Mon Jun 3 19:16:38 2013 UTC Ticket: https://dev.haiku-os.org/ticket/7040 ---------------------------------------------------------------------------- 1 file changed, 5 insertions(+), 2 deletions(-) src/add-ons/kernel/network/stack/link.cpp | 7 +++++-- ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/network/stack/link.cpp b/src/add-ons/kernel/network/stack/link.cpp index a1341aa..c88f19b 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)); }