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: