diff options
Diffstat (limited to 'net/compat.c')
| -rw-r--r-- | net/compat.c | 2 | 
1 files changed, 2 insertions, 0 deletions
diff --git a/net/compat.c b/net/compat.c index f0a1ba6c8086..89032580bd1d 100644 --- a/net/compat.c +++ b/net/compat.c @@ -71,6 +71,8 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)  	    __get_user(kmsg->msg_controllen, &umsg->msg_controllen) ||  	    __get_user(kmsg->msg_flags, &umsg->msg_flags))  		return -EFAULT; +	if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) +		return -EINVAL;  	kmsg->msg_name = compat_ptr(tmp1);  	kmsg->msg_iov = compat_ptr(tmp2);  	kmsg->msg_control = compat_ptr(tmp3);  |