summaryrefslogtreecommitdiffstats
path: root/net/vmw_vsock
diff options
context:
space:
mode:
authorAndra Paraschiv <andraprs@amazon.com>2020-12-14 17:11:20 +0100
committerJakub Kicinski <kuba@kernel.org>2020-12-15 04:33:39 +0100
commitcada7ccd9dc75fc73de9342ae1dd0374e8fb1056 (patch)
treed8d8aacf674acabf6f46f028627cf6e5ac7b00d9 /net/vmw_vsock
parentvm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag (diff)
downloadlinux-cada7ccd9dc75fc73de9342ae1dd0374e8fb1056.tar.xz
linux-cada7ccd9dc75fc73de9342ae1dd0374e8fb1056.zip
vsock_addr: Check for supported flag values
Check if the provided flags value from the vsock address data structure includes the supported flags in the corresponding kernel version. The first byte of the "svm_zero" field is used as "svm_flags", so add the flags check instead. Changelog v3 -> v4 * New patch in v4. Signed-off-by: Andra Paraschiv <andraprs@amazon.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/vmw_vsock')
-rw-r--r--net/vmw_vsock/vsock_addr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/vmw_vsock/vsock_addr.c b/net/vmw_vsock/vsock_addr.c
index 909de26cb0e7..223b9660a759 100644
--- a/net/vmw_vsock/vsock_addr.c
+++ b/net/vmw_vsock/vsock_addr.c
@@ -22,13 +22,15 @@ EXPORT_SYMBOL_GPL(vsock_addr_init);
int vsock_addr_validate(const struct sockaddr_vm *addr)
{
+ __u8 svm_valid_flags = VMADDR_FLAG_TO_HOST;
+
if (!addr)
return -EFAULT;
if (addr->svm_family != AF_VSOCK)
return -EAFNOSUPPORT;
- if (addr->svm_zero[0] != 0)
+ if (addr->svm_flags & ~svm_valid_flags)
return -EINVAL;
return 0;