Updated from Linux LTS 3.10.22 to 3.10.23
This commit is contained in:
@@ -215,12 +215,13 @@ static int move_addr_to_user(struct sockaddr_storage *kaddr, int klen,
|
||||
int err;
|
||||
int len;
|
||||
|
||||
BUG_ON(klen > sizeof(struct sockaddr_storage));
|
||||
err = get_user(len, ulen);
|
||||
if (err)
|
||||
return err;
|
||||
if (len > klen)
|
||||
len = klen;
|
||||
if (len < 0 || len > sizeof(struct sockaddr_storage))
|
||||
if (len < 0)
|
||||
return -EINVAL;
|
||||
if (len) {
|
||||
if (audit_sockaddr(klen, kaddr))
|
||||
@@ -1995,7 +1996,7 @@ static int copy_msghdr_from_user(struct msghdr *kmsg,
|
||||
if (copy_from_user(kmsg, umsg, sizeof(struct msghdr)))
|
||||
return -EFAULT;
|
||||
if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
|
||||
return -EINVAL;
|
||||
kmsg->msg_namelen = sizeof(struct sockaddr_storage);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2265,6 +2266,9 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
|
||||
/* We assume all kernel code knows the size of sockaddr_storage */
|
||||
msg_sys->msg_namelen = 0;
|
||||
|
||||
/* We assume all kernel code knows the size of sockaddr_storage */
|
||||
msg_sys->msg_namelen = 0;
|
||||
|
||||
if (sock->file->f_flags & O_NONBLOCK)
|
||||
flags |= MSG_DONTWAIT;
|
||||
err = (nosec ? sock_recvmsg_nosec : sock_recvmsg)(sock, msg_sys,
|
||||
|
||||
Reference in New Issue
Block a user