> Subject: [PATCH] RDMA/mana_ib: Prevent array underflow in > mana_ib_create_qp_raw() > > The "port" comes from the user and if it is zero then the: > > ndev = mc->ports[port - 1]; > > assignment does an out of bounds read. I have changed the if statement to fix > this and to mirror how it is done in mana_ib_create_qp_rss(). > > Fixes: 0266a177631d ("RDMA/mana_ib: Add a driver for Microsoft Azure > Network Adapter") > Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> Thank you. Acked-by: Long Li <longli@xxxxxxxxxxxxx> > --- > drivers/infiniband/hw/mana/qp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c > index ea15ec77e321..54b61930a7fd 100644 > --- a/drivers/infiniband/hw/mana/qp.c > +++ b/drivers/infiniband/hw/mana/qp.c > @@ -289,7 +289,7 @@ static int mana_ib_create_qp_raw(struct ib_qp *ibqp, > struct ib_pd *ibpd, > > /* IB ports start with 1, MANA Ethernet ports start with 0 */ > port = ucmd.port; > - if (ucmd.port > mc->num_ports) > + if (port < 1 || port > mc->num_ports) > return -EINVAL; > > if (attr->cap.max_send_wr > MAX_SEND_BUFFERS_PER_QUEUE) { > -- > 2.35.1