[AF_PACKET]: Allow for > 8 byte hardware addresses.
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 21 Sep 2005 07:11:37 +0000 (00:11 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Sep 2005 07:11:37 +0000 (00:11 -0700)
commit0fb375fb9b93b7d822debc6a734052337ccfdb1f
tree0aec28fa88b0b83e2101e1eee4c7c66ae10b5301
parent6d67e34de5a378de2f461137944c5d931283d557
[AF_PACKET]: Allow for > 8 byte hardware addresses.

The convention is that longer addresses will simply extend
the hardeware address byte arrays at the end of sockaddr_ll and
packet_mreq.

In making this change a small information leak was also closed.
The code only initializes the hardware address bytes that are
used, but all of struct sockaddr_ll was copied to userspace.
Now we just copy sockaddr_ll to the last byte of the hardware
address used.

For error checking larger structures than our internal
maximums continue to be allowed but an error is signaled if we can
not fit the hardware address into our internal structure.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/packet/af_packet.c