Commit 6dd2d4ad authored by Jason Gunthorpe's avatar Jason Gunthorpe
Browse files

RDMA/mana: Validate rx_hash_key_len

Sashiko points out that rx_hash_key_len comes from a uAPI structure and is
blindly passed to memcpy, allowing the userspace to trash kernel
memory. Bounds check it so the memcpy cannot overflow.

Cc: stable@vger.kernel.org
Fixes: 0266a177 ("RDMA/mana_ib: Add a driver for Microsoft Azure Network Adapter")
Link: https://sashiko.dev/#/patchset/0-v2-1c49eeb88c48%2B91-rdma_udata_rep_jgg%40nvidia.com?part=1
Link: https://patch.msgid.link/r/4-v1-41f3135e5565+9d2-rdma_ai_fixes1_jgg@nvidia.com


Reviewed-by: default avatarLong Li <longli@microsoft.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 45e8ebc9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,

	gc = mdev_to_gc(dev);

	if (rx_hash_key_len > sizeof(req->hashkey))
		return -EINVAL;

	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_DEF_SIZE);
	req = kzalloc(req_buf_size, GFP_KERNEL);
	if (!req)