[haiku-commits] haiku: hrev45737 - src/add-ons/kernel/network/stack

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 3 Jun 2013 21:23:53 +0200 (CEST)

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));
                }


Other related posts:

  • » [haiku-commits] haiku: hrev45737 - src/add-ons/kernel/network/stack - axeld