* 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
This commit is contained in:
Axel Dörfler
2010-12-07 19:59:18 +00:00
parent c65d3d305d
commit b756a58254
@@ -921,8 +921,11 @@ interface_protocol_control(net_datalink_protocol* _protocol, int32 option,
case SIOCGIFMEDIA: case SIOCGIFMEDIA:
{ {
// get media // get media
if (length < sizeof(ifmediareq))
return B_BAD_VALUE;
struct ifmediareq request; 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; return B_BAD_ADDRESS;
// TODO: see above. // TODO: see above.
@@ -930,7 +933,8 @@ interface_protocol_control(net_datalink_protocol* _protocol, int32 option,
SIOCGIFMEDIA, &request, SIOCGIFMEDIA, &request,
sizeof(struct ifmediareq)) != B_OK) { sizeof(struct ifmediareq)) != B_OK) {
memset(&request, 0, sizeof(struct ifmediareq)); 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)); return user_memcpy(argument, &request, sizeof(struct ifmediareq));