RDMA/ocrdma: Fix off by one in ocrdma_query_gid()
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 14 Jun 2012 18:36:09 +0000 (21:36 +0300)
committerRoland Dreier <roland@purestorage.com>
Thu, 14 Jun 2012 20:30:41 +0000 (13:30 -0700)
The dev->sgid_tbl[] array is allocated in ocrdma_alloc_resources().
It has OCRDMA_MAX_SGID elements so the test here is off by one.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c

index d55d459..2e2e7ae 100644 (file)
@@ -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));