]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/ucma: Don't allow setting RDMA_OPTION_IB_PATH without an RDMA device
authorRoland Dreier <roland@purestorage.com>
Tue, 3 Apr 2018 22:33:01 +0000 (15:33 -0700)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:36:33 +0000 (21:36 -0400)
[ Upstream commit 8435168d50e66fa5eae01852769d20a36f9e5e83 ]

Check to make sure that ctx->cm_id->device is set before we use it.
Otherwise userspace can trigger a NULL dereference by doing
RDMA_USER_CM_CMD_SET_OPTION on an ID that is not bound to a device.

Cc: <stable@vger.kernel.org>
Reported-by: <syzbot+a67bc93e14682d92fc2f@syzkaller.appspotmail.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/infiniband/core/ucma.c

index aff5f5837372b447e3cfbba0a81f43a8265e24dd..f7973c0b8a9356314ca116999bda6d595265b534 100644 (file)
@@ -1139,6 +1139,9 @@ static int ucma_set_ib_path(struct ucma_context *ctx,
        if (!optlen)
                return -EINVAL;
 
+       if (!ctx->cm_id->device)
+               return -EINVAL;
+
        memset(&sa_path, 0, sizeof(sa_path));
        sa_path.vlan_id = 0xffff;