diff options
Diffstat (limited to 'net/compat.c')
| -rw-r--r-- | net/compat.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/compat.c b/net/compat.c index 89032580bd1d..dd32e34c1e2c 100644 --- a/net/compat.c +++ b/net/compat.c | |||
| @@ -72,7 +72,7 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg) | |||
| 72 | __get_user(kmsg->msg_flags, &umsg->msg_flags)) | 72 | __get_user(kmsg->msg_flags, &umsg->msg_flags)) |
| 73 | return -EFAULT; | 73 | return -EFAULT; |
| 74 | if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) | 74 | if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) |
| 75 | return -EINVAL; | 75 | kmsg->msg_namelen = sizeof(struct sockaddr_storage); |
| 76 | kmsg->msg_name = compat_ptr(tmp1); | 76 | kmsg->msg_name = compat_ptr(tmp1); |
| 77 | kmsg->msg_iov = compat_ptr(tmp2); | 77 | kmsg->msg_iov = compat_ptr(tmp2); |
| 78 | kmsg->msg_control = compat_ptr(tmp3); | 78 | kmsg->msg_control = compat_ptr(tmp3); |
| @@ -93,7 +93,8 @@ int verify_compat_iovec(struct msghdr *kern_msg, struct iovec *kern_iov, | |||
| 93 | if (err < 0) | 93 | if (err < 0) |
| 94 | return err; | 94 | return err; |
| 95 | } | 95 | } |
| 96 | kern_msg->msg_name = kern_address; | 96 | if (kern_msg->msg_name) |
| 97 | kern_msg->msg_name = kern_address; | ||
| 97 | } else | 98 | } else |
| 98 | kern_msg->msg_name = NULL; | 99 | kern_msg->msg_name = NULL; |
| 99 | 100 | ||
