From 43638f5ef46c15864a8d05604b623bbcbd3fe18e Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Thu, 3 Jun 2004 08:34:12 -0700 Subject: [PATCH] [PATCH] sparse: sctp annotation --- include/net/sctp/structs.h | 6 +++--- include/net/sctp/user.h | 2 +- net/sctp/socket.c | 6 +++--- net/sctp/sysctl.c | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index 691f146f29dda..26c97aa3a3c72 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -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); diff --git a/include/net/sctp/user.h b/include/net/sctp/user.h index 290f9969d3cb9..04e99178015f8 100644 --- a/include/net/sctp/user.h +++ b/include/net/sctp/user.h @@ -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. */ diff --git a/net/sctp/socket.c b/net/sctp/socket.c index a3c0350c9d3c8..88b3597ba3a97 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -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(¶ms, optval, *optlen)) /* XXXXXX */ + if (copy_from_user(¶ms, optval, len)) return -EFAULT; trans = sctp_addr_id2transport(sk, ¶ms.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, diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index 16f84b1e5fcbf..89fa20c73a5cc 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -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; -- 2.53.0