소스 검색

RDMA/ocrdma: Fix off by one in ocrdma_query_gid()

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>
Dan Carpenter 13 년 전
부모
커밋
7b33dc2b05
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      drivers/infiniband/hw/ocrdma/ocrdma_verbs.c

+ 1 - 1
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);
 	dev = get_ocrdma_dev(ibdev);
 	memset(sgid, 0, sizeof(*sgid));
 	memset(sgid, 0, sizeof(*sgid));
-	if (index > OCRDMA_MAX_SGID)
+	if (index >= OCRDMA_MAX_SGID)
 		return -EINVAL;
 		return -EINVAL;
 
 
 	memcpy(sgid, &dev->sgid_tbl[index], sizeof(*sgid));
 	memcpy(sgid, &dev->sgid_tbl[index], sizeof(*sgid));