net: netlink_getname, packet_getname -- use DECLARE_SOCKADDR guard Use guard DECLARE_SOCKADDR in a few more places which allow us to catch if the structure copied back is too big. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index aea805c..f30d596 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c
@@ -708,7 +708,7 @@ { struct sock *sk = sock->sk; struct netlink_sock *nlk = nlk_sk(sk); - struct sockaddr_nl *nladdr = (struct sockaddr_nl *)addr; + DECLARE_SOCKADDR(struct sockaddr_nl *, nladdr, addr); nladdr->nl_family = AF_NETLINK; nladdr->nl_pad = 0;
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 3304caa..c620bd9 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c
@@ -1537,7 +1537,7 @@ struct net_device *dev; struct sock *sk = sock->sk; struct packet_sock *po = pkt_sk(sk); - struct sockaddr_ll *sll = (struct sockaddr_ll *)uaddr; + DECLARE_SOCKADDR(struct sockaddr_ll *, sll, uaddr); if (peer) return -EOPNOTSUPP;
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 178d3af..7553ea6 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c
@@ -1259,7 +1259,7 @@ { struct sock *sk = sock->sk; struct unix_sock *u; - struct sockaddr_un *sunaddr = (struct sockaddr_un *)uaddr; + DECLARE_SOCKADDR(struct sockaddr_un *, sunaddr, uaddr); int err = 0; if (peer) {