RDMA/cma: Remove open coding of overflow checking for private_data_len
The existing tests are a little hard to comprehend. Use
check_add_overflow() instead.
Fixes: 04ded16724
("RDMA/cma: Verify private data length")
Link: https://lore.kernel.org/r/1637661978-18770-1-git-send-email-haakon.bugge@oracle.com
Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
223b4d5c87
commit
8d0d2b0f41
|
@ -4033,8 +4033,7 @@ static int cma_resolve_ib_udp(struct rdma_id_private *id_priv,
|
|||
|
||||
memset(&req, 0, sizeof req);
|
||||
offset = cma_user_data_offset(id_priv);
|
||||
req.private_data_len = offset + conn_param->private_data_len;
|
||||
if (req.private_data_len < conn_param->private_data_len)
|
||||
if (check_add_overflow(offset, conn_param->private_data_len, &req.private_data_len))
|
||||
return -EINVAL;
|
||||
|
||||
if (req.private_data_len) {
|
||||
|
@ -4093,8 +4092,7 @@ static int cma_connect_ib(struct rdma_id_private *id_priv,
|
|||
|
||||
memset(&req, 0, sizeof req);
|
||||
offset = cma_user_data_offset(id_priv);
|
||||
req.private_data_len = offset + conn_param->private_data_len;
|
||||
if (req.private_data_len < conn_param->private_data_len)
|
||||
if (check_add_overflow(offset, conn_param->private_data_len, &req.private_data_len))
|
||||
return -EINVAL;
|
||||
|
||||
if (req.private_data_len) {
|
||||
|
|
Loading…
Reference in New Issue