|
@@ -1931,6 +1931,11 @@ static int modify_qp(struct ib_uverbs_file *file,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ if (!rdma_is_port_valid(qp->device, cmd->base.port_num)) {
|
|
|
+ ret = -EINVAL;
|
|
|
+ goto release_qp;
|
|
|
+ }
|
|
|
+
|
|
|
attr->qp_state = cmd->base.qp_state;
|
|
|
attr->cur_qp_state = cmd->base.cur_qp_state;
|
|
|
attr->path_mtu = cmd->base.path_mtu;
|
|
@@ -2541,6 +2546,9 @@ ssize_t ib_uverbs_create_ah(struct ib_uverbs_file *file,
|
|
|
if (copy_from_user(&cmd, buf, sizeof cmd))
|
|
|
return -EFAULT;
|
|
|
|
|
|
+ if (!rdma_is_port_valid(ib_dev, cmd.attr.port_num))
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
INIT_UDATA(&udata, buf + sizeof(cmd),
|
|
|
(unsigned long)cmd.response + sizeof(resp),
|
|
|
in_len - sizeof(cmd), out_len - sizeof(resp));
|