]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
can: test size of struct sockaddr in sendmsg
authorhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Tue, 19 Apr 2011 12:27:58 +0000 (12:27 +0000)
committerhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Tue, 19 Apr 2011 12:27:58 +0000 (12:27 +0000)
This patch makes the CAN socket code conform to the manpage of sendmsg.

Signed-off-by: Kurt Van Dijck <kurt.van.dijck@eia.be>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
git-svn-id: svn://svn.berlios.de//socketcan/trunk@1236 030b6a49-0b11-0410-94ab-b0dab22257f2

kernel/2.6/net/can/bcm.c
kernel/2.6/net/can/raw.c

index d12a8e55ee816be644edebeddd67a96d1bb235db..a33218b9ed1155f5b7c1667617bb728c650e3390 100644 (file)
@@ -1381,6 +1381,9 @@ static int bcm_sendmsg(struct kiocb *iocb, struct socket *sock,
                struct sockaddr_can *addr =
                        (struct sockaddr_can *)msg->msg_name;
 
+               if (msg->msg_namelen < sizeof(*addr))
+                       return -EINVAL;
+
                if (addr->can_family != AF_CAN)
                        return -EINVAL;
 
index 440989dcd4884b6d356d31ef8d661acd9c06349a..68937ce7b3905995fcb44fceaa4b7fa6badffcb8 100644 (file)
@@ -688,6 +688,9 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
                struct sockaddr_can *addr =
                        (struct sockaddr_can *)msg->msg_name;
 
+               if (msg->msg_namelen < sizeof(*addr))
+                       return -EINVAL;
+
                if (addr->can_family != AF_CAN)
                        return -EINVAL;