Skip to content

Commit 647bf3d

Browse files
eyalitkidledford
authored andcommitted
IB/rxe: Fix mem_check_range integer overflow
Update the range check to avoid integer-overflow in edge case. Resolves CVE 2016-8636. Signed-off-by: Eyal Itkin <[email protected]> Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Leon Romanovsky <[email protected]> Signed-off-by: Doug Ledford <[email protected]>
1 parent 628f07d commit 647bf3d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

drivers/infiniband/sw/rxe/rxe_mr.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ int mem_check_range(struct rxe_mem *mem, u64 iova, size_t length)
5959

6060
case RXE_MEM_TYPE_MR:
6161
case RXE_MEM_TYPE_FMR:
62-
return ((iova < mem->iova) ||
63-
((iova + length) > (mem->iova + mem->length))) ?
64-
-EFAULT : 0;
62+
if (iova < mem->iova ||
63+
length > mem->length ||
64+
iova > mem->iova + mem->length - length)
65+
return -EFAULT;
66+
return 0;
6567

6668
default:
6769
return -EFAULT;

0 commit comments

Comments
 (0)