Skip to content

Commit

Permalink
RDMA/uverbs: Fix the check for port number
Browse files Browse the repository at this point in the history
The port number is only valid if IB_QP_PORT is set in the mask.
So only check port number if it is valid to prevent modify_qp from
failing due to an invalid port number.

Fixes: 5ecce4c("Check port number supplied by user verbs cmds")
Cc: <stable@vger.kernel.org> # v2.6.14+
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Tested-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
  • Loading branch information
mustafakismail authored and dledford committed Jul 20, 2017
1 parent 963916f commit 5a7a88f
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/infiniband/core/uverbs_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1933,7 +1933,8 @@ static int modify_qp(struct ib_uverbs_file *file,
goto out;
}

if (!rdma_is_port_valid(qp->device, cmd->base.port_num)) {
if ((cmd->base.attr_mask & IB_QP_PORT) &&
!rdma_is_port_valid(qp->device, cmd->base.port_num)) {
ret = -EINVAL;
goto release_qp;
}
Expand Down

0 comments on commit 5a7a88f

Please sign in to comment.