[haiku-commits] r37940 - haiku/trunk/src/add-ons/kernel/network/stack

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 6 Aug 2010 14:55:51 +0200 (CEST)

Author: axeld
Date: 2010-08-06 14:55:51 +0200 (Fri, 06 Aug 2010)
New Revision: 37940
Changeset: http://dev.haiku-os.org/changeset/37940

Modified:
   haiku/trunk/src/add-ons/kernel/network/stack/link.cpp
Log:
* The sockaddr_dl can actually be longer than sockaddr, so we need to use a
  sockaddr_storage here (wasn't that bad before, as ifreq has a 30 bytes buffer
  after the sockaddr.


Modified: haiku/trunk/src/add-ons/kernel/network/stack/link.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/network/stack/link.cpp       2010-08-06 
12:21:34 UTC (rev 37939)
+++ haiku/trunk/src/add-ons/kernel/network/stack/link.cpp       2010-08-06 
12:55:51 UTC (rev 37940)
@@ -422,11 +422,12 @@
                        if (interface == NULL)
                                return B_DEVICE_NOT_FOUND;
 
-                       get_device_interface_address(interface, 
&request.ifr_addr);
+                       sockaddr_storage address;
+                       get_device_interface_address(interface, 
(sockaddr*)&address);
                        put_device_interface(interface);
 
                        return user_memcpy(&((struct ifreq*)value)->ifr_addr,
-                               &request.ifr_addr, request.ifr_addr.sa_len);
+                               &address, address.ss_len);
                }
 
                case SIOCGIFFLAGS:


Other related posts:

  • » [haiku-commits] r37940 - haiku/trunk/src/add-ons/kernel/network/stack - axeld