]> git.hungrycats.org Git - linux/commitdiff
[AX25]: Use size_t for size in {send,recv}msg.
authorStephen Hemminger <shemminger@osdl.org>
Thu, 8 Jan 2004 17:53:15 +0000 (09:53 -0800)
committerStephen Hemminger <shemminger@osdl.org>
Thu, 8 Jan 2004 17:53:15 +0000 (09:53 -0800)
net/ax25/af_ax25.c

index 4fb1519b930fe86a16fe300f99441be911bac4a3..43472c6fc0399d51cabb981be572156c59f47cfa 100644 (file)
@@ -1401,7 +1401,7 @@ out:
 }
 
 static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,
-                       struct msghdr *msg, int len)
+                       struct msghdr *msg, size_t len)
 {
        struct sockaddr_ax25 *usax = (struct sockaddr_ax25 *)msg->msg_name;
        struct sock *sk = sock->sk;
@@ -1410,7 +1410,8 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,
        ax25_digi dtmp, *dp;
        unsigned char *asmptr;
        ax25_cb *ax25;
-       int lv, size, err, addr_len = msg->msg_namelen;
+       size_t size;
+       int lv, err, addr_len = msg->msg_namelen;
 
        if (msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR)) {
                return -EINVAL;
@@ -1435,6 +1436,11 @@ static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,
                goto out;
        }
 
+       if (len > ax25->ax25_dev->dev->mtu) {
+               err = -EMSGSIZE;
+               goto out;
+       }
+               
        if (usax != NULL) {
                if (usax->sax25_family != AF_AX25) {
                        err = -EINVAL;
@@ -1580,7 +1586,7 @@ out:
 }
 
 static int ax25_recvmsg(struct kiocb *iocb, struct socket *sock,
-       struct msghdr *msg, int size, int flags)
+       struct msghdr *msg, size_t size, int flags)
 {
        struct sock *sk = sock->sk;
        struct sk_buff *skb;