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>
This commit is contained in:
parent
caaf95e0f2
commit
cada7ccd9d
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue