aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/socket.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c
index 879933aaed4c..32df5847efa3 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1985,6 +1985,10 @@ static int copy_msghdr_from_user(struct msghdr *kmsg,
1985{ 1985{
1986 if (copy_from_user(kmsg, umsg, sizeof(struct msghdr))) 1986 if (copy_from_user(kmsg, umsg, sizeof(struct msghdr)))
1987 return -EFAULT; 1987 return -EFAULT;
1988
1989 if (kmsg->msg_namelen < 0)
1990 return -EINVAL;
1991
1988 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) 1992 if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
1989 kmsg->msg_namelen = sizeof(struct sockaddr_storage); 1993 kmsg->msg_namelen = sizeof(struct sockaddr_storage);
1990 return 0; 1994 return 0;