aboutsummaryrefslogtreecommitdiff
path: root/net/compat.c
diff options
context:
space:
mode:
authorJan Engelmohr <jan.engelmohr@mailbox.tu-dresden.de>2016-07-26 18:10:47 +0200
committerMoyster <oysterized@gmail.com>2016-08-26 15:59:57 +0200
commit66b3b5f4bb0c4811f364332d0268fbc047835d71 (patch)
treeb0231960b01e71704f67d3c0181352d08dcebdf9 /net/compat.c
parentd7f59ace74662a703f7b079e61f9cdbc1dcb9ab3 (diff)
3.10.72 -> 3.10.73
Diffstat (limited to 'net/compat.c')
-rw-r--r--net/compat.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/compat.c b/net/compat.c
index 275af79c1..d12529050 100644
--- a/net/compat.c
+++ b/net/compat.c
@@ -71,6 +71,13 @@ 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 (!tmp1)
+ kmsg->msg_namelen = 0;
+
+ if (kmsg->msg_namelen < 0)
+ return -EINVAL;
+
if (kmsg->msg_namelen > sizeof(struct sockaddr_storage))
kmsg->msg_namelen = sizeof(struct sockaddr_storage);
kmsg->msg_name = compat_ptr(tmp1);