From: Dan Carpenter Date: Mon, 16 Feb 2015 10:01:36 +0000 (+0300) Subject: RDMA/ocrdma: Fix off by one in ocrdma_query_gid() X-Git-Tag: rdma-for-linus^6 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=59a39ca3f70ad2b4a5d3ee3161e112ec774a4146;p=~emulex%2Finfiniband.git RDMA/ocrdma: Fix off by one in ocrdma_query_gid() The ->sgid_tbl[] array has OCRDMA_MAX_SGID number of elements so this test is off by one. ->sgid_tbl is allocated in ocrdma_alloc_resources(). Signed-off-by: Dan Carpenter Acked-by: Selvin Xavier Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c index 397a3678ecf..87717556363 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -53,7 +53,7 @@ int ocrdma_query_gid(struct ib_device *ibdev, u8 port, dev = get_ocrdma_dev(ibdev); memset(sgid, 0, sizeof(*sgid)); - if (index > OCRDMA_MAX_SGID) + if (index >= OCRDMA_MAX_SGID) return -EINVAL; memcpy(sgid, &dev->sgid_tbl[index], sizeof(*sgid));