From b756a58254a25f542e24eeefc775a25a74417e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 7 Dec 2010 19:59:18 +0000 Subject: [PATCH] * Getting the device media now actually works as intended. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39757 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/datalink.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/add-ons/kernel/network/stack/datalink.cpp b/src/add-ons/kernel/network/stack/datalink.cpp index c98efc9fbf..eb94f65fc3 100644 --- a/src/add-ons/kernel/network/stack/datalink.cpp +++ b/src/add-ons/kernel/network/stack/datalink.cpp @@ -921,8 +921,11 @@ interface_protocol_control(net_datalink_protocol* _protocol, int32 option, case SIOCGIFMEDIA: { // get media + if (length < sizeof(ifmediareq)) + return B_BAD_VALUE; + struct ifmediareq request; - if (user_memcpy(&request, argument, IF_NAMESIZE) != B_OK) + if (user_memcpy(&request, argument, sizeof(ifmediareq)) != B_OK) return B_BAD_ADDRESS; // TODO: see above. @@ -930,7 +933,8 @@ interface_protocol_control(net_datalink_protocol* _protocol, int32 option, SIOCGIFMEDIA, &request, sizeof(struct ifmediareq)) != B_OK) { memset(&request, 0, sizeof(struct ifmediareq)); - request.ifm_current = interface->device->media; + request.ifm_active = request.ifm_current + = interface->device->media; } return user_memcpy(argument, &request, sizeof(struct ifmediareq));