Merge tag 'v3.14-rc1' into patchwork
[cascardo/linux.git] / net / can / bcm.c
index 46f20bf..3fc737b 100644 (file)
@@ -1256,8 +1256,7 @@ static int bcm_sendmsg(struct kiocb *iocb, struct socket *sock,
 
        if (!ifindex && msg->msg_name) {
                /* no bound device as default => check msg_name */
-               struct sockaddr_can *addr =
-                       (struct sockaddr_can *)msg->msg_name;
+               DECLARE_SOCKADDR(struct sockaddr_can *, addr, msg->msg_name);
 
                if (msg->msg_namelen < sizeof(*addr))
                        return -EINVAL;
@@ -1568,6 +1567,7 @@ static int bcm_recvmsg(struct kiocb *iocb, struct socket *sock,
        sock_recv_ts_and_drops(msg, sk, skb);
 
        if (msg->msg_name) {
+               __sockaddr_check_size(sizeof(struct sockaddr_can));
                msg->msg_namelen = sizeof(struct sockaddr_can);
                memcpy(msg->msg_name, skb->cb, msg->msg_namelen);
        }