| From foo@baz Sun Jun 17 12:07:33 CEST 2018 |
| From: Matan Barak <matanb@mellanox.com> |
| Date: Tue, 24 Apr 2018 08:15:20 +0000 |
| Subject: IB/uverbs: Fix validating mandatory attributes |
| |
| From: Matan Barak <matanb@mellanox.com> |
| |
| [ Upstream commit f604db645a66b7ba4f21c426fe73253928dada41 ] |
| |
| Previously, if a method contained mandatory attributes in a namespace |
| that wasn't given by the user, these attributes weren't validated. |
| Fixing this by iterating over all specification namespaces. |
| |
| Fixes: fac9658cabb9 ("IB/core: Add new ioctl interface") |
| Signed-off-by: Matan Barak <matanb@mellanox.com> |
| Signed-off-by: Doug Ledford <dledford@redhat.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/core/uverbs_ioctl.c | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| --- a/drivers/infiniband/core/uverbs_ioctl.c |
| +++ b/drivers/infiniband/core/uverbs_ioctl.c |
| @@ -191,6 +191,15 @@ static int uverbs_validate_kernel_mandat |
| return -EINVAL; |
| } |
| |
| + for (; i < method_spec->num_buckets; i++) { |
| + struct uverbs_attr_spec_hash *attr_spec_bucket = |
| + method_spec->attr_buckets[i]; |
| + |
| + if (!bitmap_empty(attr_spec_bucket->mandatory_attrs_bitmask, |
| + attr_spec_bucket->num_attrs)) |
| + return -EINVAL; |
| + } |
| + |
| return 0; |
| } |
| |