]> git.hungrycats.org Git - linux/commitdiff
[PATCH] sparse: sctp annotation
authorAlexander Viro <viro@parcelfarce.linux.theplanet.co.uk>
Thu, 3 Jun 2004 15:34:12 +0000 (08:34 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 3 Jun 2004 15:34:12 +0000 (08:34 -0700)
include/net/sctp/structs.h
include/net/sctp/user.h
net/sctp/socket.c
net/sctp/sysctl.c

index 691f146f29ddaba44d47ff5512ce8bcd915091d5..26c97aa3a3c721c1e06a69e75cd0ac3f9178c4f0 100644 (file)
@@ -437,13 +437,13 @@ struct sctp_af {
        int             (*setsockopt)   (struct sock *sk,
                                         int level,
                                         int optname,
-                                        char *optval,
+                                        char __user *optval,
                                         int optlen);
        int             (*getsockopt)   (struct sock *sk,
                                         int level,
                                         int optname,
-                                        char *optval,
-                                        int *optlen);
+                                        char __user *optval,
+                                        int __user *optlen);
        struct dst_entry *(*get_dst)    (struct sctp_association *asoc,
                                         union sctp_addr *daddr,
                                         union sctp_addr *saddr);
index 290f9969d3cb960de5821829997174e70017615c..04e99178015f8c80658cc785c98e59033e2e9b4b 100644 (file)
@@ -559,7 +559,7 @@ struct sctp_status {
 struct sctp_getaddrs {
        sctp_assoc_t            assoc_id;
        int                     addr_num;
-       struct sockaddr         *addrs;
+       struct sockaddr         __user *addrs;
 };
 
 /* These are bit fields for msghdr->msg_flags.  See section 5.1.  */
index a3c0350c9d3c84c45f7fa34db3e3006e3da57c49..88b3597ba3a97901ece13d2a5f4c74b9ba6186a1 100644 (file)
@@ -2799,7 +2799,7 @@ static int sctp_getsockopt_peer_addr_params(struct sock *sk, int len,
 
        if (len != sizeof(struct sctp_paddrparams))
                return -EINVAL;
-       if (copy_from_user(&params, optval, *optlen))   /* XXXXXX */
+       if (copy_from_user(&params, optval, len))
                return -EFAULT;
 
        trans = sctp_addr_id2transport(sk, &params.spp_address,
@@ -2969,7 +2969,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
        int cnt = 0;
        struct sctp_getaddrs getaddrs;
        struct sctp_sockaddr_entry *from;
-       void *to;
+       void __user *to;
        union sctp_addr temp;
        struct sctp_opt *sp = sctp_sk(sk);
        int addrlen;
@@ -2996,7 +2996,7 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len,
                bp = &asoc->base.bind_addr;
        }
 
-       to = (void *)getaddrs.addrs;
+       to = getaddrs.addrs;
        list_for_each(pos, &bp->address_list) {
                from = list_entry(pos,
                                struct sctp_sockaddr_entry,
index 16f84b1e5fcbf63bdb7be4a65215b8b9ae1ccfc7..89fa20c73a5cc244fe8199101452bc606ca26b1c 100644 (file)
@@ -232,7 +232,7 @@ static int sctp_sysctl_jiffies_ms(ctl_table *table, int __user *name, int nlen,
                                return -EINVAL;
                }
                if (put_user((*(int *)(table->data) * 1000) / HZ,
-                       (int *)oldval) ||
+                       (int __user *)oldval) ||
                    (oldlenp && put_user(sizeof (int), oldlenp)))
                        return -EFAULT;
        }
@@ -242,7 +242,7 @@ static int sctp_sysctl_jiffies_ms(ctl_table *table, int __user *name, int nlen,
                if (newlen != sizeof (int))
                        return -EINVAL;
 
-               if (get_user(new, (int *)newval))
+               if (get_user(new, (int __user *)newval))
                        return -EFAULT;
 
                *(int *)(table->data) = (new * HZ) / 1000;