X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fsocket.c;h=02948b622bd2e938bfc6d02e44f2d13ae2b9f874;hb=d7a80dad2fe19a2b8c119c8e9cba605474a75a2b;hp=23898f45f7137d2da995ebe8c89784e1deefaf13;hpb=2514395ef88b46e895726a8d40966cb83de7940c;p=linux-2.6 diff --git a/net/socket.c b/net/socket.c index 23898f45f7..02948b622b 100644 --- a/net/socket.c +++ b/net/socket.c @@ -267,6 +267,8 @@ int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ule return -EINVAL; if(len) { + if (audit_sockaddr(klen, kaddr)) + return -ENOMEM; if(copy_to_user(uaddr,kaddr,len)) return -EFAULT; } @@ -490,6 +492,7 @@ static struct socket *sockfd_lookup_light(int fd, int *err, int *fput_needed) struct file *file; struct socket *sock; + *err = -EBADF; file = fget_light(fd, fput_needed); if (file) { sock = sock_from_file(file, err);